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

Vis*_*hnu 17 jestjs azure-pipelines-build-task

我发现了一些关于特定版本的问题,以便在JST单元测试中将其结果发布到VSTS构建测试结果选项卡中.但没有找到适当的解决方案.

cri*_*mbo 27

我使用了一种不同的方法,经过一些研究后我发现不推荐使用Jest testResultsProcessor属性.我正在使用jest-junit包进行测试报告(最近比jest-trx-results-processor,fwiw工作):

  1. 添加jest-junit package.json

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

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

    我使用了Yarn任务,但您可以交替使用npm任务.我使用了这些任务参数:

    jest --ci --reporters=jest-junit --reporters=default --coverage --coverageReporters=cobertura --coverageReporters=html
    
    Run Code Online (Sandbox Code Playgroud)

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

    jest --ci --reporters=jest-junit --reporters=default
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,--reporters=default有b/c我想在构建日志中使用默认的stdout.

  3. 添加" 发布测试结果"任务

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

发布测试结果任务

  1. (可选)添加发布代码覆盖任务,太

    如果您正在运行代码覆盖,那么您也可以添加用于发布代码覆盖率结果的任务:

发布代码覆盖率结果任务

  • 非常有用的答案。您可能还需要考虑“yarn test”任务的“continueOnError: true”(任务级别)以及“PublishTestResults”任务的“failTask​​OnFailedTests: true”(输入级别),以便测试失败仍会导致结果上传,但构建仍然失败。 (2认同)

Vis*_*hnu 9

我已经去了一些像tap-xunit1一样的jest npm软件包,jest-json-to-tap但却无法理解它的工作原理.以下步骤让我可以在VSTS构建测试下查看结果.

  1. 安装jest-trx-results-processor

    jestTrxProcessor.js

  2. 创建package.json包含以下内容的文件:

    npm

  3. 更新的npm test文件应如下所示:

    jestTestresults.trx

    1. 添加Publish Test Results 任务VSTS建立jestTestresults.trx.这将运行jest测试并将结果发布到tap-xunit
    2. 添加jest-json-to-tap VSTS任务jestTrxProcessor.js在VSTS测试中添加结果.

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


Rya*_*one 6

Evaldas 的解决方案已经过时,所以我将添加一些修改。

更现代的解决方案是 Evaldas 的组合和维护者的组合:https ://www.npmjs.com/package/jest-trx-results-processor

我将在下面描述它。

  1. 安装 jest-trx-results-processor

    # NPM
    npm install jest-trx-results-processor --save-dev
    
    # Yarn
    yarn add -D jest-trx-results-processor
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更新后的package.json文件应如下所示:

    # NPM
    npm install jest-trx-results-processor --save-dev
    
    # Yarn
    yarn add -D jest-trx-results-processor
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在构建管道中将npm任务添加到 VSTS 构建npm test。它应该是这样的: 测试设置。

  4. 添加Publish Test ResultsVSTS 的任务以jestTestresults.trx在 VSTS 测试中添加结果。为此,在构建管道中,单击“添加符号”。查找“发布测试结果”。它会调出这样的菜单。由于它是 .trx 文件,因此您需要使用 VSTest 而不是 JTest。 发布测试结果的配置
  5. 最后,前端项目的构建管道将如下所示:成品流水线。