React Jestテストを含むアプリがあります。package.json
でJestを設定しています:
…
"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"
]
},
…
setup-jasmine-env.js
は次のようになります。
var jasmineReporters = require('jasmine-reporters');
jasmine.VERBOSE = true;
jasmine.getEnv().addReporter(
new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: "output/",
filePrefix: "test-results"
})
);
Jasmine envを正しく設定するには少し作業が必要でしたが、output
ディレクトリに何も表示されません(実際、作成されておらず、自分で作成しても役に立ちません)。 jasmine
varへの私の変更はJestが使用しているものと同じではありませんが、それらを一緒にフックする方法がわかりません。
上記の設定で不足しているのは、unmockedModulePathPatterns
にjasmine-reporters
を追加することだけなので、次のように実行します。
"jest": {
...
"unmockedModulePathPatterns": [
"./node_modules/q",
"./node_modules/react",
"./node_modules/jasmine-reporters"
]
},
お役に立てば幸いです。
UPDATE:この問題を経験している他の人のために、私は実用的なデモを公開しました ここ 。
より新しいバージョンのjest(私は16.0.2を見ています)を使用している場合、jasmineがデフォルトであるため、testrunner
を指定する必要はありません。また、jest設定のunmockedModulePathPatterns
セクションは必要ありません。
つまりpackage.json
に次のdevDependencies
を含めるだけです。
"jasmine-reporters": "^2.2.0",
"jest": "^16.0.2",
"jest-cli": "^16.0.2"
そして、このjest設定をpackage.json
に追加します(注:unmockedModulePathPatterns
セクションは不要です):
"jest": {
"setupTestFrameworkScriptFile": "./setup-jasmine-env.js"
}
次に、質問からDrewのsetup-jasmine-env.js
を使用します。
JestはtestResultsProcessor設定を介して独自のレポーターをサポートしています。だから私はこれのために互換性のあるjunit xmlを生成する小さなことを書きました。ここで見つけることができます。 https://github.com/palmerj3/jest-junit