gpt4 book ai didi

c# - 如何通过 TFS 构建过程为 Jasmine\Karma 运行 Typescript 测试

转载 作者:搜寻专家 更新时间:2023-10-30 20:39:27 24 4
gpt4 key购买 nike

我有一个 Web 应用程序,它使用 Angular 1.5 和用 Typescript 编码的 bower/npm/gulp 来完成我们的构建。我们的后端是一个 c# .net WebApi2。两者都是在 TFS2015 上构建和部署的。我的 c# nUnit 测试很容易作为构建过程的一部分进行集成。然而,Typescript Jasmine 单元测试更难集成。如何让我的 Typescript jasmine 单元测试作为 TFS 构建的一部分运行,如果它们失败,则构建失败?我们让它们通过 Jasmine Spec runner 和 Karma 运行,但没有集成。

我已经阅读了关于集成 Javascript 单元测试的 StackOverflow 上的许多帖子,每条途径都让我经历了一个过于复杂但行不通的解决方案。其中包括 Powershell 脚本、Chutzpah 等。

最佳答案

与其尝试在构建服务器上通过 Chutzpah 重新创建 Specrunner,我发现它很难配置和运行。目的是让 karma 以 TFS 识别的“trx”测试格式输出正在运行的测试,然后将它们发布到构建中。请注意,我正在使用 PhantomJs 通过 Karma 运行我的测试,但不会在这里介绍,因为它在其他地方有很好的介绍。

1) 安装karma-trx-reporter plugin通过 npm 进入你的网络项目(或类似的插件)

2) 配置 Karma.config 以包含 trx 报告器

reporters: ['dots', 'trx'],

trxReporter: { outputFile: 'test-results.trx' },

// notify karma of the available plugins
plugins: [
'karma-jasmine',
'karma-phantomjs-launcher',
'karma-trx-reporter',
],

3) 创建一个 Gulp(或 grunt)任务来运行 karma 测试(如果您还没有的话)。在本地运行任务并检查它是否创建了上面指定的“test-results.trx”。 (在构建服务器上创建文件的位置并不重要):

gulp.task('test', function () {
return gulp.src(['tests/*.js']).pipe(karma({
configFile: __dirname + '/Testing/karma.config.js',
singleRun: true
}));
});

4) 添加 Gulp(或 Grunt)TFS 构建任务以运行在上一步中创建的 karma 测试并输出 trx 文件。 enter image description here

5) 添加 Gulp(或 Grunt)TFS 构建任务以发布测试结果并将它们合并到构建中。请注意,“测试结果文件”路径是一个通配符 **/*.trx,用于在构建路径中查找任何 trx 文件(即查找我们之前创建的文件)。 “合并测试结果”被选中以将我们的 Jasmine 测试运行和我们的 c# 测试运行合并到同一个 session 中。 “出错时继续”未选中,以确保任何 jasmine 测试失败都会破坏构建。

enter image description here

您会注意到已运行并包含在构建中的两组测试!

enter image description here

关于c# - 如何通过 TFS 构建过程为 Jasmine\Karma 运行 Typescript 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38952063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com