私はいくつかの SOに関する質問 VSTSビルドの[テスト結果]タブで結果を公開するためのjestユニットテストのバージョンに固有のものを見つけました。しかし、適切な解決策は見つかりません。
tap-xunit
やjest-json-to-tap
のようなjest npmパッケージをスローしましたが、動作することがわかりませんでした。次の手順は、 VSTSのテスト ビルドで結果を確認するために働きました。
インストール jest-trx-results-processor
# NPM
npm install jest-trx-results-processor --save-dev
# Yarn
yarn add -D jest-trx-results-processor
次の内容のjestTrxProcessor.js
ファイルを作成します。
var builder = require('jest-trx-results-processor');
var processor = builder({
outputFile: 'jestTestresults.trx'
});
module.exports = processor;
更新されたpackage.json
ファイルは次のようになります。
"devDependencies": {
"jest": "^23.4.1",
"jest-trx-results-processor": "0.0.7",
"jsdom": "^11.12.0",
...
},
"scripts": {
"test": "jest"
},
"jest": {
...,
"testResultsProcessor": "./jestTrxProcessor.js"
}
npm test
にnpm
VSTSビルドへのタスク を追加します。これにより、jestテストが実行され、結果がjestTestresults.trx
に公開されます
Publish Test Results
VSTSのタスク を追加して、VSTSテストのjestTestresults.trx
結果を追加します。JESTテストと他のテストを見ることができます。
Jest testResultsProcessorプロパティは非推奨です であることがわかった後、別のアプローチb/cを使用しました。テストレポートにjest-junitパッケージを使用しています(これはjest-trx-results-processor、fwiwよりも最近作業されています) :
Jest-junitをpackage.json
に追加します
例:yarn add -D jest-junit
またはnpm add --save-dev jest-junit
jest-junit results reporterを使用してJestを実行するVSTSタスクを追加します
Yarnタスク を使用しましたが、代わりに npmタスク を使用できます。これらのタスク引数を使用しました。
jest --ci --reporters=jest-junit --reporters=default --coverage --coverageReporters=cobertura --coverageReporters=html
コードカバレッジも必要だったからです。コードカバレッジレポートをスキップするには、次の(npmまたはyarn)タスク引数を使用します。
jest --ci --reporters=jest-junit --reporters=default
--reporters=default
があることに注意してくださいb/cビルドログにデフォルトのstdoutが必要でした。
テスト結果の公開タスク を追加します
デフォルトのパスを使用しているため、テスト結果ファイルは~/junit.xml
に書き込まれます
(オプション) コードカバレッジタスクの公開 も追加します
コードカバレッジを実行している場合は、コードカバレッジの結果を公開するタスクも追加できます。