2015-04-28 64 views
2

我有點沮喪。我們爲我們的自動化測試框架使用了Protractor,幾個星期前我犯了一個npm更新的錯誤,它將我的茉莉花模塊更新爲版本2,因此打破了我的所有測試。我已經讓環境再次執行測試,但茉莉花不創建XML文件。我讀過量角器1.6是需要使用茉莉花2. *,但我似乎無法更新版本1.5以上的量角器。我試過沒有茉莉花和量角器的輸出文件

npm update protractor 

以及

git clone https://github.com/angular/protractor.git 
cd protractor 
npm install 

第二組命令實際上再次爆出的東西,直到我做了一個

webdriver-manager update 

這把我帶回了原來的問題能夠運行測試,但不能獲得用其中的結果創建的xml文件。

我的配置文件中的一個例子是:

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    specs: ['MyTest.js'], 
    rootElement: 'div', 
    allScriptsTimeout: 50000, 
    onPrepare: function(){ 
     var jasmineReporters = require('jasmine-reporters'); 
     var junitReporter = jasmineReporters.JUnitXmlReporter({ 
      savePath: '/Automation/Results', 
      consolidateAll: false 
     }); 
    } 
} 

它運行測試正常,但在結果文件夾沒有創建XML文件。問題是我只需要將Protractor更新到1.6來查看xml文件?如果是這樣,我怎麼在OSX上做到這一點?如果這不是問題,有沒有人看到我做錯了什麼?

感謝,

+0

嘗試將路徑更改爲__dirname,並檢查在目錄測試中創建的文件是否運行。 – vanadium23

+0

謝謝你的幫助。不幸的是,我仍然沒有得到創建的XML文件。我甚至搜索了整個硬盤驅動器,看看它是否在我沒有預料到的位置創建,但沒有運氣。該文件不會生成。謝謝你的信息。 – user2233949

+0

結合使用jasmine.getEnv()。addReporter(junitReporter);和__dirname。 ;-) – vanadium23

回答

2

您需要add the reporter to the jasmine environment using addReporter()

var jasmineReporters = require('jasmine-reporters'); 
var junitReporter = new jasmineReporters.JUnitXmlReporter({ 
    savePath: '/Automation/Results', 
    consolidateAll: false 
}); 
jasmine.getEnv().addReporter(junitReporter); 
+0

謝謝你的幫助。我很感激,但不幸的是,我似乎還沒有得到/自動化/結果中的XML文件。測試運行完成,沒有任何錯誤,但沒有XML文件。 onPrepare代碼肯定正在運行,但它好像savePath完全被忽略。 – user2233949

+0

@ user2233949好的,謝謝,如果你改變'./ Automation/Results'或'Automation/Results'的路徑,怎麼辦? – alecxe

+0

不幸的是,仍然沒有運氣。我列舉了junitReporter的屬性,並可以看到savePath屬性設置正確。它似乎並沒有真正把文件放在那裏。再次,我感謝幫助。當我看到你的addReporter答案時,我認爲這可能是正確的。聽起來非常合理。儘管如此,我仍會繼續努力。 – user2233949

1

我能解決它。無論如何。我有兩次量角器安裝。一旦我想通了,我需要添加

framework:'jasmine2' 

我的exports.config在Conf文件中。一旦我做到了這一點,並使用Protractor 2.0運行測試,就可以按照預期創建xml文件。顯然,量角器默認爲茉莉花的1.x版本,除非該框架屬性被明確設置爲jasmine2。我只是不確定我是如何結束2個量角器的安裝,但一切似乎都在重新開始。

感謝大家的幫助。