The purpose of the application is to compare test reports for a given pair of directories.
A test report is:
- any file in the file tree of a given directory whose name starts with
TEST-
and ends withxml
(case insensitive) - the format of the file needs to conform to
surefire-report-parser
expected format
Upon parsing, standard set arithmetic operations are executed and reported per test case grouped by test suite:
- intersection
- left difference/relative complement
- right difference/relative complement
For exact semantics of set arithmetic operations please check the immutable and comparable facades source code files.
The required test report format seems to be a standard format produced by both maven and gradle plugins and also understood by different IDEs. There may be a compatibility issue for older builds since there seems to be two versions/xml schemas of the said format.
./gradlew clean shadowJar
java -jar build/libs/test-results-diff-all.jar src/test/resources/byte-buddy-1 src/test/resources/byte-buddy-2
Setting system properties or having a file named default.properties
in the current directory will override default properties.
For details see file src/resources/help.txt
and for defaults see src/resources/default.properties
.
Any error with CLI/program arguments will invoke java.lang.System#exit
.
Simplified analysis of test reports between builds with a single change:
- different implementations of components
- compiler upgrade
- version bumps
byte-buddy test reports are used to test the functionality.