使用TFS 2015运行Jest单元测试

时间:2016-05-24 15:24:08

标签: node.js unit-testing visual-studio-2015 tfsbuild jestjs

是否有人试图将开玩单元测试与TFS 2015集成?我试图使用Chutzpah测试适配器(https://visualstudiogallery.msdn.microsoft.com/f8741f04-bae4-4900-81c7-7c9bfb9ed1fe?SRC=VSIDE),但它无法识别开玩笑。我收到以下错误: Can't find variable Jest

当我通过" npm test"进行单元测试时我得到了结果。但是为了与TFS 2015集成,我需要一个可以运行Jest单元测试的测试运行器,以便我可以与TFS 2015提供的vstest.console.exe一起运行单元测试,以便它可以管理构建结果​​并在构建中发布结果总结报告。

任何帮助都将不胜感激!!

任何可以使用以下命令运行测试的测试运行器都应该工作(考虑安装在系统上的VS 2015): " C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe" " \ test.js" / UseVsixExtensions:真

3 个答案:

答案 0 :(得分:7)

Merlin's answer上进行扩展,以下是我如何为TFS2015 vNext版本实现发布游戏测试结果和代码覆盖率(我正在使用create-react-app样板文件):

首先在运行代理的服务器上安装所需的软件包:

npm install -g jest-json-to-tap

npm install -g tap-xunit

  1. 配置jest输出json,通过将package.json中的“test”任务更改为: “test”:“react-scripts test --env = jsdom --json”,

  2. 在package.json中配置jest选项: “jest”:{“coverageReporters”:[“cobertura”]}

  3. 创建了一个vNext版本(TFS2015v4),其中包含以下任务:

  4. 一个。 “npm”任务,命令=运行,参数=测试 - --coverage | jest-json-to-tap | tap-xunit> TEST-为result.xml

    湾“发布测试结果”任务,格式= JUnit

    ℃。 “公共代码覆盖率结果”任务,代码覆盖率工具= Cobertura,摘要文件= $(Build.Repository.LocalPath)\ coverage \ cobertura-coverage.xml

    1. 确保您的构建版本的“变量”包括设置环境变量“CI”=“true”
    2. 注意: - 测试结果不包括时间和组件 - 未来可以延伸......

      瞧'!运行此构建将正确发布测试结果和代码覆盖率统计信息,以及报告工件。

答案 1 :(得分:4)

我不确定jest,但是有一个简洁的npm包可以将基于TAP的结果转换为xUnit XMLformat,然后你可以将它发布到TFS。

看看tap-xunit

我有一个构建环境,其中javascript测试由各种工具和框架(AVA,Mocha,Jasmine等)完成。我们决定将它们全部导出为TAP格式,运行它们抛出tap-xunit然后发布到TFS。

基本上,你需要这样的东西:

npm test | tap-xunit > results.xml

将结果传递给tap-xunit并将其保存为XML。这为您提供了格式为xUnit的XML,您可以将其发布到TFS。如果您正在运行TFS 2015,我强烈建议您使用vNext版本,这样可以更轻松地运行这些版本。检查“发布测试结果”构建步骤。

答案 2 :(得分:0)

如果您使用XAML版本运行,此链接将为您提供帮助:Javascript Unit Tests on Team Foundation Service with Chutzpah

如果您使用vNext版本运行,请尝试在this blog中使用Jasmine.JS测试(也是一种JavaScript测试)中提到的详细步骤。