而不是尝试在构建服务器上通过 Chutzpah 重新创建 Specrunner,我发现它很难配置和工作。目的是让 karma 以 TFS 识别的“trx”测试格式输出正在运行的测试,然后将它们发布到构建中。请注意,我正在使用 PhantomJs 通过 Karma 运行我的测试,但这里不会介绍它,因为它在其他地方已经很好地介绍了。
1) 通过 npm 将karma-trx-reporter plugin 安装到您的 Web 项目(或类似插件)中
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)任务来运行业力测试(如果您还没有)。在本地运行任务并检查它是否创建了上面指定的“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 构建任务来运行在上一步中创建的业力测试并输出 trx 文件。
5) 添加一个 Gulp(或 Grunt)TFS 构建任务来发布测试结果并将它们合并到构建中。请注意,“测试结果文件”路径是通配符 **/*.trx,用于查找构建路径中的任何 trx 文件(即查找我们之前创建的文件)。选中“合并测试结果”以将我们的 Jasmine 测试运行和我们的 c# 测试运行合并到同一个会话中。取消勾选“Continue on error”以确保任何 jasmine 测试失败都会破坏构建。
您会注意到已运行并包含在构建中的两组测试!