Creates annotations based on the output of jest-junit
(see how to configure jest-junit
properly) in your test files.
.github/workflows/your-workflow.yml
- uses: IgnusG/jest-report-action@v{ current version }
if: always() # Or use "continue-on-error: true" in previous test step
with:
access-token: ${{ secrets.GITHUB_TOKEN }}
We'll need that to enrich the actions run with annotations. The secret is automatically generated by github.com.
The location and/or the name of the JUnit file. jest-junit
uses junit.xml as a default, which is the default here too. If you haven't changed it, you can omit this input.
The name of your run. This is typically build
but can be configured individually. Make sure it matches your workflow config:
.github/workflows/your-workflow.yml
build: # <- this one!
steps:
...
A custom name that will appear in the PR's check window. Useful if you have multiple test suites - code, pipelines, publishing process etc., each run with separate jest commands.
Be sure to run this action after each jest run, that way you can use the same name for the JUnit file - or omit it.
Otherwise you have to give each generated JUnit file a unique name and pass it to jest-report-action
.
The working directory, where the junit-file
, as well as the sources (of test files) can be found. The default is the root directory of your project.
Have a look at how to call jest-junit
in your workflows in the documentation.
A very simple example is calling jest with a custom --reporters
parameter:
package.json and other
jest --ci --reporters=default --reporters=jest-junit
To provide correct annotation locations, you need to configure jest-junit
to format the xml file in a compatible way.
Set these in either your package.json or through enviornment variables while running jest in your CI (Github).
package.json
"jest-junit": {
"suiteNameTemplate": "{filepath}",
"classNameTemplate": "{classname}",
"titleTemplate": "{title}"
}
Refer to jest-junit
Documentation to see other ways to configure these.
Thank you and have an amazing day!