Test results CLI Reference#
test-results command line interface (CLI) is a tool that helps you compile and
process JUnit test result XML files for Test Summary ↗ pages.
test-results have a built-in help command that can be accessed by running the following:
$ test-results Semaphore 2.0 Test results CLI v0.4.5 Usage: test-results [command] Available Commands: combine combines multiples json summary files into one file compile parses xml files to a well-defined json schema gen-pipeline-report fetches workflow level junit reports and combines them help Help with commands publish parses xml file to a well-defined json schema and publishes results to artifacts storage Flags: --config string config file (default is $HOME/.test-results.yaml) -h, --help help for test-results -N, --name string name of the suite -p, --parser string override parser to be used (default "auto") -S, --suite-prefix string prefix for each suite -t, --toggle Help message for toggle --trace trace output -v, --verbose verbose output --version version for test-results Use "test-results [command] --help" for more information about a command.
Merging test results#
Let's say that your job generates multiple JUnit xml files:
$ tree /tmp/test-results /tmp/test-results ├── benchmark.xml ├── integration.xml ├── ui.xml └── unit.xml 0 directories, 4 files
If you want to have a single report for the job, you can use the following command:
test-results publish /tmp/test-results
This will combine all
.xml files into one report and then publish it to your artifacts storage.
Working with docker#
When you run your test suites from a docker container, generated JUnit XML files will only be available in that container by default. In order to make the host aware of these files, you can use docker bind mounts ↗:
# .semaphore/semaphore.yaml - name: Run tests task: prologue: commands: - checkout # Creates `test-runner` image - bin/setup.sh jobs: - name: go test commands: # `run-specs` creates `junit.xml` file in container's /app directory - docker run -v $(pwd):/app test-runner run-specs epilogue: always: commands: - test-results publish junit.xml