启动Visual Studio Team Services Build中的mocha测试

时间:2015-06-11 12:55:21

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

我不能为我的生活找到文档或在Visual Studio Online版本中启动摩卡单元测试的教程。

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

这是怎么做到的?是否有我遗失的文件。

3 个答案:

答案 0 :(得分:6)

假设您已使用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测试结果。

  

BONUS!您还可以使用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

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

答案 1 :(得分:0)

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

你也可以使用Visual Studio Test Runner和Chutzpah一起运行你的测试,但我想这将是很多额外的设置工作,而且不会增加太多。

答案 2 :(得分:0)

经过相当多的摆弄我通过在我的构建定义中添加“命令行任务”来实现它,我使用了以下参数:

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

我的测试位于“test”文件夹下,同时确保将jasmine-node作为dev依赖项 enter image description here