web-dev-qa-db-ja.com

VSTSテストでJestユニットテスト結果を公開する方法

私はいくつかの SOに関する質問 VSTSビルドの[テスト結果]タブで結果を公開するためのjestユニットテストのバージョンに固有のものを見つけました。しかし、適切な解決策は見つかりません。

12
Vishnu

tap-xunitjest-json-to-tapのようなjest npmパッケージをスローしましたが、動作することがわかりませんでした。次の手順は、 VSTSのテスト ビルドで結果を確認するために働きました。

  1. インストール jest-trx-results-processor

    # NPM
    npm install jest-trx-results-processor --save-dev
    
    # Yarn
    yarn add -D jest-trx-results-processor
    
  2. 次の内容のjestTrxProcessor.jsファイルを作成します。

    var builder = require('jest-trx-results-processor');     
    var processor = builder({
        outputFile: 'jestTestresults.trx' 
    });
    module.exports = processor;
    
  3. 更新された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"
    }
    
  4. npm testnpmVSTSビルドへのタスク を追加します。これにより、jestテストが実行され、結果がjestTestresults.trxに公開されます

  5. Publish Test ResultsVSTSのタスク を追加して、VSTSテストのjestTestresults.trx結果を追加します。

JESTテストと他のテストを見ることができます。

8
Vishnu

Jest testResultsProcessorプロパティは非推奨です であることがわかった後、別のアプローチb/cを使用しました。テストレポートにjest-junitパッケージを使用しています(これはjest-trx-results-processor、fwiwよりも最近作業されています) :

  1. Jest-junitをpackage.jsonに追加します

    例:yarn add -D jest-junitまたはnpm add --save-dev jest-junit

  2. 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が必要でした。

  3. テスト結果の公開タスク を追加します

    デフォルトのパスを使用しているため、テスト結果ファイルは~/junit.xmlに書き込まれます

Publish Test Results task

  1. (オプション) コードカバレッジタスクの公開 も追加します

    コードカバレッジを実行している場合は、コードカバレッジの結果を公開するタスクも追加できます。

Publish Code Coverage Results task

22
crimbo