帮助我了解如何将我的Angular-Jasmine-Karma堆栈连接到Jenkins。我有一个Angular.js网络应用程序,我用Karma(néTestacular)和Jasmine进行测试。它看起来就像Angular Tutorial。我想用Jenkins持续集成测试它。
到目前为止,我已根据教程安装了Angular,Jasmine和Karma。我安装了Jenkins。我可以让每个人独立工作。从我的内容来看,似乎Karma应该输出一个Jenkins摄取的XML文件,但是Karma并不是一直输出一个文件,我从概念上不理解这一点。詹金斯在什么时候称呼卡玛?
一个好的答案将概述在詹金斯进行Karma测试所需的部分。
以防万一,这是我的Karma配置。它以调试的名义被肢解。
module.exports = function(config){
config.set({
basePath : '../',
files : [
'app/lib/angular/angular.js',
'app/lib/angular/angular-*.js',
'app/js/**/*.js',
'test/unit/**/*.js'
],
exclude : [
'app/lib/angular/angular-loader.js',
'app/lib/angular/*.min.js',
'app/lib/angular/angular-scenario.js'
],
autoWatch : true,
frameworks: ['jasmine'],
browsers : ['Chrome'],
plugins : [
'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-script-launcher',
'karma-jasmine'
],
reporters : ['dots', 'junit', 'coverage'],
junitReporter : {
outputFile: 'test_out/unit.xml',
suite: 'unit'
}
coverageReporter : {
type: 'cobertura',
dir: 'coverage/',
file: 'coverage.xml'
}
});
};
答案 0 :(得分:17)
首先,您需要一个列出以下内容的karma.conf.js
文件:
reporters: ['progress', 'coverage', 'dots', 'junit'],
junitReporter: {
outputDir: 'karma-results',
outputFile: 'karma-results.xml'
},
browsers: ['PhantomJS'],
singleRun: true
reporters
键下最重要的项目是junit
。这是将您的Karma输出转换为XML文件的附加组件。您的测试输出必须采用特定的XML格式,以便Jenkins解析它。您可以使用junitReporter
密钥配置此XML文件的输出位置。在browsers
密钥中,请确保您指定PhantomJS
,因为您的Jenkins服务器很可能没有Chrome或Firefox的实例。 singleRun
密钥确保Karma服务器在测试运行之前启动,并在测试完成时关闭。
接下来,通过运行以下命令确保服务器上安装了以下所有节点模块:
npm install -g karma-cli
npm install -g karma --save-dev
npm install -g phantomjs
npm install -g karma-jasmine --save-dev
npm install -g karma-phantomjs-launcher --save-dev
npm install -g karma-coverage
通过浏览器访问您的Jenkins服务器。您可以通过
访问Jenkins服务器http://server-ip-address:8080
在继续前进之前,请确保您拥有“
已安装环境注入器插件“和”Junit插件“。一旦有,请单击Jenkins主页左侧的New Item
。为您的工作设置以下参数:
“属性内容”允许您在服务器上为Jenkins分配PATH,并允许您在其下方的“命令”部分中使用karma
关键字。 “命令”部分告诉Jenkins cd到您的karma.conf.js
文件所在的文件夹并启动Karma。
如果您在我上面的outputDir
示例中使用outputFile
和karma.conf.js
值,那么您可以保留“测试报告XML”输入值。否则,请更改它以反映将生成XML结果文件的新路径。
现在,无论何时在Jenkins中运行此作业,您都可以看到它是否通过,以及测试中的行项目结果。
答案 1 :(得分:3)
你使用maven作为构建工具吗?如果是这样,请查看:https://github.com/eirslett/frontend-maven-plugin。它运行测试,因此Jenkins可以显示结果。