帮助我了解如何将我的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' } }); };
Lloyd Banks.. 19
首先,您需要一个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
键可以确保测试运行之前噶服务器启动和关闭时,测试完成.
接下来,通过运行以下命令确保服务器上安装了以下所有节点模块:
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
在继续之前,请确保安装了"Environment Injector Plugin"和"Junit Plugin".一旦有,请单击New Item
Jenkins主页的左侧.为您的工作设置以下参数:
"属性内容"允许您在服务器上为Jenkins分配PATH,并允许您karma
在其下方的"命令"部分中使用该关键字."命令"部分告诉Jenkins cd到文件所在的karma.conf.js
文件夹并启动Karma.
如果您使用上面示例中的outputDir
和outputFile
值karma.conf.js
,则可以保留"测试报告XML"输入值.否则,更改它以反映将生成XML结果文件的新路径.
现在,无论何时在Jenkins中运行此作业,您都可以看到它是否通过,以及测试中的行项结果.
首先,您需要一个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
键可以确保测试运行之前噶服务器启动和关闭时,测试完成.
接下来,通过运行以下命令确保服务器上安装了以下所有节点模块:
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
在继续之前,请确保安装了"Environment Injector Plugin"和"Junit Plugin".一旦有,请单击New Item
Jenkins主页的左侧.为您的工作设置以下参数:
"属性内容"允许您在服务器上为Jenkins分配PATH,并允许您karma
在其下方的"命令"部分中使用该关键字."命令"部分告诉Jenkins cd到文件所在的karma.conf.js
文件夹并启动Karma.
如果您使用上面示例中的outputDir
和outputFile
值karma.conf.js
,则可以保留"测试报告XML"输入值.否则,更改它以反映将生成XML结果文件的新路径.
现在,无论何时在Jenkins中运行此作业,您都可以看到它是否通过,以及测试中的行项结果.