如何在VSTS测试中发布Jest单元测试结果?

时间:2018-08-07 06:20:38

标签: jestjs azure-pipelines-build-task

我找到了一些questions on SO专用于笑话单元测试的版本,以将其结果发布到VSTS构建测试结果标签中。但是找不到适当的解决方案。

3 个答案:

答案 0 :(得分:16)

经过一些研究,我发现Jest testResultsProcessor property is deprecated是b / c。我正在使用 jest-junit 包来生成测试报告(比jest-trx-results-processor fwiw更为新近开发):

  1. 将玩笑内容添加到package.json

    例如yarn add -D jest-junitnpm add --save-dev jest-junit

  2. 添加一个VSTS任务以使用jest-junit结果报告程序运行Jest

    我使用了the Yarn task,但是您也可以选择使用the npm task。我使用了以下任务参数:

    jest --ci --reporters=jest-junit --reporters=default --coverage --coverageReporters=cobertura --coverageReporters=html
    

    因为我也想覆盖代码。要跳过代码覆盖率报告,请使用以下(npm或yarn)任务参数:

    jest --ci --reporters=jest-junit --reporters=default
    

    请注意,--reporters=default是否存在,我想在构建日志中使用默认标准输出。

  3. 添加一个Publish Test Results task

    由于我们使用的是默认路径,因此测试结果文件将被写入~/junit.xml

Publish Test Results task

  1. (可选),也添加一个publish code coverage task

    如果您正在运行代码覆盖率,还可以添加一个任务来发布代码覆盖率结果:

Publish Code Coverage Results task

答案 1 :(得分:7)

我已经抛出了一些有趣的npm软件包,例如tap-xunitjest-json-to-tap,但无法弄清楚它是否起作用。以下步骤对我有用,可以使结果以Test of 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添加npm test task to VSTS build。这将运行笑话测试并将结果发布到jestTestresults.trx

  5. 添加Publish Test Results task of VSTS,以在VSTS测试中添加jestTestresults.trx个结果。

您将能够看到JEST测试以及其他测试。

答案 2 :(得分:1)

Evaldas的解决方案已过时,因此我将添加一些修改。

更现代的解决方案是Evaldas的解决方案与维护者提供的解决方案之间的结合:https://www.npmjs.com/package/jest-trx-results-processor

我将在下面对此进行描述。

  1. 安装jest-trx-results-processor

    DashboardModule
  2. 更新后的# NPM npm install jest-trx-results-processor --save-dev # Yarn yarn add -D jest-trx-results-processor 文件应类似于:

    package.json
  3. 在构建管道中为"devDependencies": { "jest": "^24.9.0", "jest-trx-results-processor": "^1.0.2" ... }, "scripts": { "test": "jest" }, "jest": { ..., "reporters": [ "default", [ "jest-trx-results-processor", { "outputFile": "./src/jestTestresults.trx", "defaultUserName": "user name to use if automatic detection fails" } ]]} 的VSTS构建中添加npm任务。它看起来应该像这样: The test setup.

  4. 添加VSTS的npm test任务以在VSTS测试中添加Publish Test Results个结果。为此,在构建管道中,单击“添加符号”。查找“发布测试结果”。它将弹出这样的菜单。由于它是一个.trx文件,因此您需要使用VSTest而不是JTest。 Configuration of Publish Test Results
  5. 最后,前端项目的构建管道如下所示:The finished pipeline.