Skip to content

IgnusG/jest-report-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Jest Github Actions Reporter

Creates annotations based on the output of jest-junit (see how to configure jest-junit properly) in your test files.

Example

.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 }}

Example of Jest Annotations

Inputs

access-token - required

We'll need that to enrich the actions run with annotations. The secret is automatically generated by github.com.

junit-file - optional

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.

run-name - optional

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:
        ...

check-name - optional

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.

working-directory - optional

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.

jest-junit Configuration

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!