运行“节点testing”作为Visual Studio Team Services构build任务的一部分,并在“testing”选项卡中显示结果
我有一个项目,包含我从命令行使用Mocha运行的testing。 我在我的packages.json
设置了一个testing脚本,如下所示:
"test": "mocha ./**/*.spec.js --reporter dot --require jsdom-global/register"
我目前在Visual Studio Team Services中设置了一个简单的任务, npm test
运行npm test
命令,这将在控制台中运行Mocha,并根据testing是否通过继续/失败构build。
我希望能够做的是让我的testing结果在运行后填充构build定义中的“testing”选项卡。 以同样的方式,我可以得到这个选项卡填充,如果我在C#代码上运行testing。
我已经尝试过使用Chutzpah,但它太复杂了,似乎要求我跳过各种各样的箍,这意味着改变我的testing和编写长的configuration文件。 我已经写了大量的testing,所以真的不想这样做。 当它终于发现我的任何testing,它抱怨与Node模块相关的require
和其他事情。
我真正想要的是什么? 有没有一种简单的方法来实现这与在Node中运行我的testing兼容?
我find了一个不需要第三方适配器(如Chutzpah)的好方法。 它涉及让Mocha以XML格式输出其报告,并设置Visual Studio Team Services以在构build定义的额外步骤中发布结果。
我安装了mocha-junit-reporter
( https://www.npmjs.com/package/mocha-junit-reporter )并将我的testing脚本更改为以下内容:
"test": "mocha ./temp/**/*.spec.js --reporter mocha-junit-reporter --require jsdom-global/register"
然后我使用“发布testing结果”任务在构build定义中创build了一个新步骤。 我将结果格式设置为“JUnit”,并为由记者创build的输出test-results.xml
文件添加了正确的path。
值得注意的是,虽然摩卡拥有一个“XUnit”记者,但是这个格式在VSTS中似乎无法正常工作,即使它被列为选项。
npm test
的结果现在显示在“testing”选项卡中,以及来自MSTest等的任何其他testing。
我正在使用业力,并得到这个作为@ dylan-parrybuild议相同的方式。 下面的一些除了可以帮助别人的情况外:
的package.json
"scripts": { "test": "cross-env NODE_ENV=test karma start" }
karma.conf.js
const webpackCfg = require('./webpack.config')('test'); module.exports = function karmaConfig(config) { config.set({ reporters: ['mocha', 'coverage', 'junit'], junitReporter: { outputDir: 'coverage', outputFile: 'junit-result.xml', useBrowserName: false } }) ...
TFS
这也许值得添加我在我的git分支上使用branch policies
,以防止PR被合并,如果testing失败,请通过以下链接获取信息:
https://www.visualstudio.com/en-us/docs/git/branch-policies
以下是TFS中的输出:
下一步是让覆盖面也工作!