sar*_*rin 6 c# tfs angularjs typescript karma-jasmine
我有一个使用Angular 1.5的web应用程序,在Typescript中编码了bower/npm/gulp来进行构建.我们的后端是ac#.net WebApi2.两者都是在TFS2015上构建和部署的.我的c#nUnit测试很容易作为构建过程的一部分进行集成.然而,Typescript茉莉花单元测试更难以整合.如何让我的Typescript jasmine单元测试作为TFS构建的一部分运行,如果它们失败,则构建失败?我们让他们通过Jasmine Spec跑步者和Karma但没有整合.
我已经阅读了StackOverflow集成Javascript单元测试的很多帖子,每条大道都带我通过一个过于复杂的解决方案,但是没有用.这些包括Powershell脚本,Chutzpah amoungst其他.
而不是尝试在构建服务器上通过Chutzpah重新创建Specrunner,我发现很难配置并开始工作.目的是让业力以TFS识别的'trx'测试格式输出运行测试,然后将它们发布到构建中.请注意我使用PhantomJs通过Karma运行我的测试,但不会覆盖它,因为它在其他地方被很好地覆盖.
1)通过npm 将karma-trx-reporter插件安装到你的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',
],
Run Code Online (Sandbox Code Playgroud)
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
}));
});
Run Code Online (Sandbox Code Playgroud)
4)添加Gulp(或Grunt)TFS构建任务以运行在上一步骤中创建的业力测试并输出trx文件.

5)添加Gulp(或Grunt)TFS构建任务以发布测试结果并将它们合并到构建中.请注意,"测试结果文件"路径是一个通配符**/*.trx,用于在构建路径中查找任何trx文件(即查找我们以前创建的文件).检查"合并测试结果"以将我们的Jasmine测试运行和我们的c#测试运行合并到同一会话中.未完成"继续出错"以确保任何茉莉花测试失败都会破坏构建.
您将注意到已经运行并包含在构建中的两组测试!
| 归档时间: |
|
| 查看次数: |
3118 次 |
| 最近记录: |