2014-03-28 49 views
15

幫助我瞭解如何將我的Angular-Jasmine-Karma堆棧連接到Jenkins。我有一個Angular.js的網絡應用程序,我測試與Karma(NES Testacular)和Jasmine。它看起來就像Angular Tutorial。我想用Jenkins Continuous Integration進行測試。將Karma Runner連接到Jenkins CI

到目前爲止,我已經根據教程安裝了Angular,Jasmine和Karma。我已經安裝了詹金斯。我可以讓每個人獨立工作。根據我的想法,似乎Karma應該輸出一個Jenkins提取的XML文件,但Karma並不一致地輸出一個文件,我不理解這個概念。詹金斯什麼時候打電話給卡瑪?

一個好的答案將概述在Jenkins中進行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

ü找到了辦法嗎?如果是的話,笏是嗎? –

回答

14

首先,你需要一個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 

通過瀏覽器訪問您的服務器詹金斯。您可以在

http://server-ip-address:8080 

到達您的詹金斯服務器前進之前,請確保您已經安裝了「 環境噴油器插件」和「插件的Junit」。一旦在那裏,點擊Jenkins主頁左側的New Item。爲您的工作設置以下參數:

enter image description here

「屬性內容」允許您指定詹金斯一個PATH您的服務器上,並允許您使用karma關鍵字它下面的「命令」部分。 「命令」部分告訴詹金斯cd到您的文件所在的文件夾並啓動Karma。

如果您在上面的示例中使用outputDiroutputFile值,則可以保留「測試報告XML」輸入值。否則,請將其更改爲反映將生成XML結果文件的新路徑。

現在,無論何時您在Jenkins中執行此作業,您都可以查看它是否通過,以及訂單項是否來自您的測試。