-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Same configuration in different react apps is causing failure in mutation tests at all or finds just few tests #4773
Comments
ok, seems like I've found the issue which is skipoing those tests - this is aliased imports... Can you provide info, why those are not working? |
Hmm interesting. I think this is an issue with Jest. Could you try running Stryker with this change in your config? {
"reporters": ["html", "clear-text", "progress"],
"packageManager": "npm",
"timeoutMS": 30000,
"ignorePatterns": ["/src/lib/icons/*.tsx"],
"tsconfigFile": "tsconfig.json",
"mutator": { "excludedMutations": ["BlockStatement", "StringLiteral", "ArrayDeclaration", "ObjectLiteral"] },
"disableTypeChecks": "/.{js,ts,jsx,tsx,html,vue}",
"testRunner": "jest",
"coverageAnalysis": "perTest",
"tempDirName": "stryker-tmp",
- "mutate": ["/src//**/.ts", "/src///*.tsx", "!/src//*.spec.ts", "!/src/**/*.spec.tsx"]
+ "mutate": ["/src//**/.ts", "/src///*.tsx", "!/src//*.spec.ts", "!/src/**/*.spec.tsx"],
+ "jest": {
+ "enableFindRelatedTests": false
+ }
} |
|
This sounds like this known issue: https://stryker-mutator.io/docs/stryker-js/troubleshooting/#all-mutants-survive---jest-runner Could you try enabling |
Hello, |
Hi @Vaclovas thanks for your detailed report. The problem is that StrykerJS will try to use Jest's You can verify this by running nicojs@NicoJ01 project/ui-shared (master)$ npx jest --findRelatedTests src/lib/field-label/FieldLabel.tsx
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
No files found in ~/tmp/project/ui-shared.
Make sure Jest's configuration does not exclude this directory.
To set up Jest, make sure a package.json file exists.
Jest Documentation: https://jestjs.io/docs/configuration
Pattern: src/lib/field-label/FieldLabel.tsx - 0 matches There are 2 ways to solve this:
After choosing one of these 2 solutions, you can run stryker without |
Question
Why same configuration for a very similar app is causing test failure? Mainly, tests are not even running or only a few tests can be found.
Stryker environment
stryker config:
{
"reporters": [
"html", "clear-text", "progress"
],
"packageManager": "npm",
"timeoutMS": 30000,
"ignorePatterns": ["/src/lib/icons/*.tsx"],
"tsconfigFile": "tsconfig.json",
"mutator": { "excludedMutations": ["BlockStatement",
"StringLiteral",
"ArrayDeclaration",
"ObjectLiteral"] },
"disableTypeChecks": "/.{js,ts,jsx,tsx,html,vue}",
"testRunner": "jest",
"coverageAnalysis": "perTest",
"tempDirName": "stryker-tmp",
"mutate": [
"/src//**/.ts",
"/src///*.tsx",
"!/src//*.spec.ts",
"!/src/**/*.spec.tsx"
]
}
nx + jest+ react and
"@stryker-mutator/core": "8.2.6",
"@stryker-mutator/jest-runner": "8.2.6",
"jest": "29.4.1",
"jest-environment-jsdom": "29.4.1",
"jest-environment-node": "29.4.1",
"jest-slow-test-reporter": "1.0.0",
Additional context
Here is the first app:
here is another app:
What is intresting, that even components are covered by unit tests, they are marked as "NoCoverage", jest finds these tests and succesfully adds those to coverage report, but stryker - is failing. Assumption can be, that configuration is bad, but some of the files are found and counted into the report:
So, actually, only 6 spec.ts/tsx files are identified from 256 files. I've tried to search for differences, remove specific imports, change naming - nothing happens, tried some recipies from github and troubleshooting guide.
Maybe you could assist with this?
The text was updated successfully, but these errors were encountered: