Jest
This page outlines how the Launchable CLI interfaces with Jest.
This is a reference page. See Getting started, Sending data to Launchable, and Subsetting your test runs for more comprehensive usage guidelines.

Recording test results

After running tests, point the CLI to your test report files to collect test results and train a model:
1
# install jest-junit reporter
2
npm install jest-junit --save-dev
3
# or
4
yarn add --dev jest-junit
5
6
# configure jest-junit to include file paths in test reports
7
export JEST_JUNIT_SUITE_NAME="{filepath}"
8
9
# run tests with jest-junit
10
jest --ci --reporters=default --reporters=jest-junit
11
12
# send test results to Launchable
13
launchable record tests --build <BUILD NAME> jest your-junit.xml
Copied!
  • By default, jest-junit's report file is saved to ./junit.xml, but that might be different depending on how your Jest project is configured.
  • You can specify multiple directories if you do multi-project build.

Configure environment valiables

You need to configure jest-junit to include file paths in reports. To specify it, set the JEST_JUNIT_SUITE_NAME environment variable like bellow.
Recommended config:
1
export JEST_JUNIT_CLASSNAME="{classname}"
2
export JEST_JUNIT_TITLE="{title}"
3
export JEST_JUNIT_SUITE_NAME="{filepath}"
Copied!
Minimum config:
1
export JEST_JUNIT_SUITE_NAME="{filepath}"
Copied!

Configure package.json

Or add the below lines to your package.json. The detail is the jest-junit section.
Recommended config:
1
// package.json
2
"jest-junit": {
3
"suiteNameTemplate": "{filepath}",
4
"classNameTemplate": "{classname}",
5
"titleTemplate": "{title}"
6
}
Copied!
Minimum config:
1
// package.json
2
"jest-junit": {
3
"suiteNameTemplate": "{filepath}"
4
}
Copied!
You might need to take extra steps to make sure that launchable record tests always runs even if the build fails. See Always record tests.

Subsetting your test runs

The high level flow for subsetting is:
  1. 1.
    Get the full list of tests/test paths and pass that to launchable subset with an optimization target for the subset
  2. 2.
    launchable subset will get a subset from the Launchable platform and output that list to a text file
  3. 3.
    Pass the text file into your test runner to run only those tests
To retrieve a subset of tests, first use jest --listTests to list all the tests you would normally run and pass that to launchable subset:
1
jest --listTests | launchable subset \
2
--build <BUILD NAME> \
3
--confidence <TARGET> \
4
--base $(pwd)
5
jest > launchable-subset.txt
Copied!
  • The --build should use the same <BUILD NAME> value that you used before in launchable record build.
  • The --confidence option should be a percentage; we suggest 90% to start. You can also use --time or --target; see Subsetting your test runs for more info.
This creates a file called launchable-subset.txt that you can pass into your command to run tests:
1
jest $(< launchable-subset.txt)
Copied!
Last modified 13d ago