New Feature: Forward unknown command line arguments to jest.config.js
See original GitHub issueš Feature Proposal
Forward unknown command line arguments to jest.config.js file. Right now, jest will respond with "unknown argumentā. The proposal is to instead allow these unrecognized arguments so they can be used in the jest.config.js file to modify the config.
Tor-051496:my-project ben$ yarn jest --unit
yarn run v1.5.1
$ /Users/ben/Projects/my-project/node_modules/.bin/jest --unit
ā Unrecognized CLI Parameter:
Unrecognized option "unit".
CLI Options Documentation:
https://facebook.github.io/jest/docs/en/cli.html
Motivation
Sometimes you want to slightly change the jest config based on some variable. For example, I might want to only run my unit tests or integration tests instead of all my tests. Or I might want to only test a certain project in a monorepo.
Example
Your cli command would look like this:
jest --integration
And you config might look like this:
const argv = require('yargs').argv;
function getTestRegex() {
if(argv.integration) {
return `__tests__/integration/\.(ts|js)x?$`;
}
return 'test\.(ts|js)x?$';
}
module.exports = {
"testRegex": getTestRegex(),
}
Alternatives
Alternatively, you could also somehow specify this is a custom flag. The advantage here is that you can keep the āunknown flagā check. The disadvantage is that it becomes a little more verbose.
jest --known-jest-flag --custom-flags --integration
or maybe
jest --known-jest-flag -f --integration
Right now, you can also use environment variables, but theyāre more verbose.
TEST_TYPE=integration jest
Pitch
This involves a direct change to the jest cli, and thereās no way to do this outside the core as far as I know.
Issue Analytics
- State:
- Created 5 years ago
- Reactions:9
- Comments:6 (1 by maintainers)
Top GitHub Comments
Disabling unknown CLI commands was a conscious decision, to align Jest with a lot of UNIX tools, and weāre not going back. We believe this makes sense.
As you already mentioned, this is possible using env variables and I donāt see it being more verbose than a CLI flag. I canāt see any added value by this proposal, but even more config options to maintain.
Sorry to be a bearer of bad news, but Iām going to close this. Thanks for taking the time to prepare a nice feature request, appreciated! Looking forward to more proposals or bug fixes š
Imagine you are using jest-puppeteer to run e2e tests. You might want to supply options like headless=false and slowmo=250, or even other start-up options for Puppeteer.
If a preset like jest-puppeteer could add itās own commands directly to the Jest CLI, would that not be good? It makes sense to me at least, as long as they are namespaced and validated by the preset.