而不是試圖通過構建服務器上的Chutzpah重新創建Specrunner,我發現這很難配置和工作。目標是讓業力以TFS識別的'trx'測試格式輸出正在運行的測試,然後將它們發佈到構建版本。請注意我正在使用PhantomJs通過Karma運行我的測試,但在這裏不會涉及,因爲它在其他地方都很好。
1)通過安裝在故宮到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)創建一個咕嘟咕嘟(或咕嚕)任務來運行業力測試,如果你還沒有。在本地運行任務並檢查它是否創建了上面指定的'test-results.trx'。 (不要緊,在構建服務器上創建的文件):
gulp.task('test', function() {
return gulp.src(['tests/*.js']).pipe(karma({
configFile: __dirname + '/Testing/karma.config.js',
singleRun: true
}));
});
4)添加咕嘟咕嘟(或咕嚕聲)TFS建設任務運行在上一步和輸出的TRX產生的業力試驗文件。 ![enter image description here](https://i.stack.imgur.com/0UNAl.png)
5)添加一個Gulp(或Grunt)TFS構建任務來發布測試結果並將它們合併到構建中。請注意,「測試結果文件」路徑是一個通配符**/*。trx,用於查找構建路徑中的任何trx文件(即查找我們以前創建的文件)。選擇「合併測試結果」以將我們的Jasmine測試運行和我們的c#測試運行合併到同一個會話中。 「繼續出錯」不會打亂,以確保任何茉莉花測試失敗都會破壞構建。
![enter image description here](https://i.stack.imgur.com/I26cx.png)
你會發現兩套已運行並將其作爲構建的一部分測試!
![enter image description here](https://i.stack.imgur.com/zk7HX.png)
謝謝你的步驟。我有在遠程虛擬機上運行的業力測試。你知道如何讓他們回到控制器,所以構建可以找到trx文件? – Aligned
你有兩個選擇是;更改Karma.config的outputFile屬性或更改「發佈測試結果TFS構建」任務的「測試結果文件」屬性。另一種方法是將運行測試移至與構建代理相同的機器。這是我的首選。我在項目中安裝了karma-pantomjs插件,因此沒有任何額外的下載\配置爲了讓測試運行。 – sarin
這裏是我寫我必須做的事情:https://gooroo.io/GoorooTHINK/Article/17028/Karma-Test-Results-with-TFS-Build/25020#.V9vpEyErJhE – Aligned