| import java.io.BufferedReader; |
| import java.io.FileReader; |
| import java.io.IOException; |
| |
| /** |
| * TestWrapper is a class that examines JUnit test results and outputs reports |
| * only if one or more tests failed. |
| */ |
| public class TestWrapper { |
| |
| /** |
| * Prints each file listed in args to standard out, only if it |
| * contained a failed JUnit test. |
| * @param args the file names of the test results to examine |
| */ |
| public static void main(String[] args) { |
| for (String filename : args) { |
| try { |
| if (containsJUnitFailure(filename)) { |
| System.out.println(); |
| System.out.println("Failed tests in: " + filename); |
| print(filename); |
| } |
| } catch (Exception e) { |
| System.out.println("Problem reading file " + filename); |
| e.printStackTrace(System.out); |
| } |
| } |
| } |
| |
| /** |
| * Examines the given file and displays it if there are failed tests. |
| * |
| * @param filename the name of the file to examine. |
| */ |
| private static boolean containsJUnitFailure(String filename) throws IOException { |
| BufferedReader in = new BufferedReader(new FileReader(filename)); |
| String line = in.readLine(); |
| while (line != null) { |
| if (line.contains("FAILED")) { |
| in.close(); |
| return true; |
| } |
| line = in.readLine(); |
| } |
| in.close(); |
| return false; |
| } |
| |
| /** |
| * Prints the specified file. |
| * @param filename the name of the file to print |
| * @throws Exception if an error occurs |
| */ |
| private static void print(String filename) throws IOException { |
| BufferedReader in = new BufferedReader(new FileReader(filename)); |
| String line = in.readLine(); |
| while (line != null) { |
| System.out.println(line); |
| line = in.readLine(); |
| } |
| in.close(); |
| } |
| } |