J'ai une application React qui a des tests Jest. Je configure Jest dans mon package.json
:
…
"jest": {
"setupEnvScriptFile": "./test/jestenv.js",
"setupTestFrameworkScriptFile": "./test/setup-jasmine-env.js",
"testRunner": "node_modules/jest-cli/src/testRunners/jasmine/jasmine2.js",
"unmockedModulePathPatterns": [
"./node_modules/q",
"./node_modules/react"
]
},
…
Le setup-jasmine-env.js
ressemble à ça:
var jasmineReporters = require('jasmine-reporters');
jasmine.VERBOSE = true;
jasmine.getEnv().addReporter(
new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: "output/",
filePrefix: "test-results"
})
);
Il a fallu un peu de travail pour obtenir cette configuration env jasmine correctement, mais je ne vois rien dans le répertoire output
(en effet, il n'est pas créé et le créer moi-même n'aide pas). Je soupçonne que mes modifications au jasmine
var ne sont pas les mêmes que celles que Jest utilise, mais je ne sais pas comment les relier ensemble.
on dirait que tout ce qui vous manque dans la configuration ci-dessus est d'ajouter jasmine-reporters
à unmockedModulePathPatterns
, essayez donc ce qui suit:
"jest": {
...
"unmockedModulePathPatterns": [
"./node_modules/q",
"./node_modules/react",
"./node_modules/jasmine-reporters"
]
},
J'espère que cela pourra aider!
MISE À JOUR: pour toute autre personne rencontrant ce problème, j'ai mis en place une démo de travail ici .
Si vous utilisez une version plus récente de jest (je regarde 16.0.2), vous n'avez pas besoin de spécifier le testrunner
car jasmine est la valeur par défaut. Vous n'avez pas non plus besoin de la section unmockedModulePathPatterns
de la configuration jest.
C'est à dire. il vous suffit d'inclure les devDependencies
suivants dans votre package.json
:
"jasmine-reporters": "^2.2.0",
"jest": "^16.0.2",
"jest-cli": "^16.0.2"
Et ajoutez cette plaisanterie à votre package.json
(remarque: vous n'avez plus besoin de la section unmockedModulePathPatterns
):
"jest": {
"setupTestFrameworkScriptFile": "./setup-jasmine-env.js"
}
Et puis utilisez le setup-jasmine-env.js
de la question.
Jest prend en charge ses propres reporters via la configuration testResultsProcessor. J'ai donc écrit une petite chose qui génère du junit xml compatible pour cela. Vous pouvez le trouver ici. https://github.com/palmerj3/jest-junit