【问题标题】:Kick off mocha tests in Visual Studio Team Services Build在 Visual Studio Team Services Build 中启动 mocha 测试
【发布时间】:2015-06-11 12:55:20
【问题描述】:

我一辈子都找不到在 Visual Studio Online 构建中启动 mocha 单元测试的文档或教程。

我有一个在 VSO 中构建并部署到 Azure 的 node.js 应用程序。这一切都很好。我似乎无法弄清楚如何通过构建过程启动规范文件。

这是怎么做到的?是否有我遗漏的文档可用。

【问题讨论】:

标签: node.js mocha.js azure-devops azure-pipelines


【解决方案1】:

假设您使用 package.json 设置了 Mocha 测试,即使用 npm test 运行测试。更多信息请参考https://docs.npmjs.com/cli/test。

在您的 Visual Studio Online 构建/发布中:

  • 添加“npm”任务以安装 JUnit 报告器
    • 运行自定义命令install mocha-junit-reporter
  • 添加“npm”任务
    • 运行自定义命令test -- --reporter mocha-junit-reporter
    • 提示:您可能希望通过添加 --timeout 30000 来增加超时,因为构建代理的运行速度可能比您的开发盒慢
  • 然后,添加“发布测试结果”任务
    • 将“测试结果格式”设置为“JUnit”
    • 选中“出错时继续”复选框
    • 在“控制选项”>“运行此任务”下,将其设置为“即使之前的任务失败,除非构建被取消”

对构建进行排队,您应该会在 VSO 构建中看到 Mocha 测试结果。

奖励!您还可以使用 nyc(以前称为 Istanbul)为您的 Mocha 运行添加代码覆盖率

在上述步骤之上:

  • 将伊斯坦布尔本地安装到您的package.json
    • 运行npm install nyc--save-dev
  • 修改package.json中的脚本
    • 更新{ "scripts": { "test": "nyc --repoter=cobertura mocha" } }
  • 修改“npm test”任务
    • 运行自定义命令test -- --reporter mocha-junit-reporter
  • 添加“发布代码覆盖结果”任务
    • 将“代码覆盖工具”设置为“Cobertura”
    • 将“摘要文件”设置为$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml
    • 将“报告目录”设置为$(System.DefaultWorkingDirectory)/coverage/
    • 选中“出错时继续”复选框
    • 在“控制选项”>“运行此任务”下,将其设置为“即使之前的任务失败,除非构建被取消”
  • 添加一个新的构建变量NPM_CONFIG_COVERAGE并将其设置为true

现在您在构建报告中同时获得了单元测试和代码覆盖率结果。

【讨论】:

    【解决方案2】:

    如果您已将 package.json 配置为能够运行测试,则添加一个执行 npm run test 的 npm 步骤应该可以做到。如果要发布测试结果,您需要确保 Mocha 将其结果写入 Visual Studio Team Services 可以理解的格式。 JUnit format 是一个安全的赌注。然后执行上传测试结果的发布测试结果步骤。

    您也可以使用 Visual Studio Test Runner,结合 Chutzpah 来运行您的测试,但我想这将是很多额外的设置工作,不会增加太多。

    【讨论】:

    • 我认为 XUnit 是 VSO 中更受支持的格式,请参阅 github.com/Microsoft/nodejstools/wiki/…。
    • 我的错。在 VSO 上试过,它说 XUnit 测试结果 XML 格式不正确。 JUnit 仍然是最佳选择。
    【解决方案3】:

    经过一番折腾后,我通过在构建定义中添加“命令行任务”使其工作,我使用了以下参数:

    • 将工具设置为node
    • 将参数设置为$(Build.SourcesDirectory)\node_modules\jasmine-node\bin\jasmine-node --verbose test\

    我的测试在“test”文件夹下,还要确保你有 jasmine-node 作为开发依赖项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 2018-05-19
      相关资源
      最近更新 更多