diff options
| author | J08nY | 2018-02-11 03:04:40 +0100 |
|---|---|---|
| committer | J08nY | 2018-02-11 03:04:40 +0100 |
| commit | 5097e783310242cfb782c62d84d65a4b3a387a72 (patch) | |
| tree | ae513c0401b16ac4e109492e35c15232cdddcb55 /src/cz/crcs/ectester/reader/output/FileTestWriter.java | |
| parent | 91e83f3caea0d08c59bfbe3603cfa413ef1f0624 (diff) | |
| download | ECTester-5097e783310242cfb782c62d84d65a4b3a387a72.tar.gz ECTester-5097e783310242cfb782c62d84d65a4b3a387a72.tar.zst ECTester-5097e783310242cfb782c62d84d65a4b3a387a72.zip | |
Allow outputing test suite results into more formats and files.
Diffstat (limited to '')
| -rw-r--r-- | src/cz/crcs/ectester/reader/output/FileTestWriter.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/reader/output/FileTestWriter.java b/src/cz/crcs/ectester/reader/output/FileTestWriter.java new file mode 100644 index 0000000..6cfece1 --- /dev/null +++ b/src/cz/crcs/ectester/reader/output/FileTestWriter.java @@ -0,0 +1,54 @@ +package cz.crcs.ectester.reader.output; + +import cz.crcs.ectester.common.output.TeeTestWriter; +import cz.crcs.ectester.common.output.TestWriter; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.util.regex.Pattern; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class FileTestWriter extends TeeTestWriter { + + private static final Pattern PREFIX = Pattern.compile("(text|xml|yaml|yml):.+"); + + public FileTestWriter(String defaultFormat, boolean systemOut, String[] files) throws ParserConfigurationException, FileNotFoundException { + int fLength = files == null ? 0 : files.length; + writers = new TestWriter[systemOut ? fLength + 1 : fLength]; + System.err.println(writers.length); + if (systemOut) { + writers[0] = createWriter(defaultFormat, System.out); + } + for (int i = 0; i < fLength; ++i) { + String fName = files[i]; + String format = null; + if (PREFIX.matcher(fName).matches()) { + String[] split = fName.split(":",2); + format = split[0]; + fName = split[1]; + } + writers[i + 1] = createWriter(format, new PrintStream(new FileOutputStream(fName))); + } + } + + private TestWriter createWriter(String format, PrintStream out) throws ParserConfigurationException { + if (format == null) { + return new TextTestWriter(out); + } + switch (format) { + case "text": + return new TextTestWriter(out); + case "xml": + return new XMLTestWriter(out); + case "yaml": + case "yml": + return new YAMLTestWriter(out); + default: + return null; + } + } +} |
