icon |
---|
material/xml |
Nextest can produce output in the JUnit/XUnit XML format. This format is widely understood by test analysis tools and libraries.
To enable JUnit support, add this to your nextest configuration:
[profile.ci.junit] # this can be some other profile, too
path = "junit.xml"
If --profile ci
is selected on the command line, a JUnit report will be written out to target/nextest/ci/junit.xml
within the workspace root.
Some notes about the JUnit support:
- There are several slightly different formats all called "JUnit" or "XUnit". Nextest adheres to the Jenkins XML format.
- Every test binary forms a single
<testsuite>
. Every test forms a single<testcase>
. - Standard output and standard error are included for failed and retried tests. (However, invalid XML characters are stripped out.)
Configuration options supported for JUnit reports, within the junit
section:
report-name
: The name of the report. Defaults to "nextest-run"
.
store-success-output
: Whether to store output for successful tests in the <system-out>
and <system-err>
elements. Defaults to false.
store-failure-output
: Whether to store output for failing tests in the <system-out>
and <system-err>
elements. Defaults to true.
The store-success-output
and store-failure-output
configuration can also be configured on a per-test basis.
[profile.default.junit]
path = "junit.xml"
# These are the default values, specified for clarity.
store-success-output = false
store-failure-output = true
[[profile.default.overrides]]
filter = 'test(important-test)'
junit.store-success-output = true
In this example, the JUnit report will contain the output for all failing tests, and for successful tests that contain "important-test" in the name.
Some tools that read JUnit files don't follow the Jenkins standard. You can post-process the JUnit file in such cases. Here's some recommendations for post-processing tools written by community members:
- CircleCI:
circleci-junit-fix
Here's an example JUnit file generated by cargo-nextest
.
cat ../fixtures/nextest-tests-junit.xml