2014-10-16 82 views
5

我有一套測試是在使用並行測試的持續集成中啓動的。部署後環境有點不穩定,因此套件完成時,失敗的測試會重新啓動(此時環境會再次穩定)。如何在重新運行後報告黃瓜測試?

基本上,僅存在一個詹金斯構建,並且它將執行該:

task :jenkins1_with_rerun do 
selenium_successful = system "bundle exec parallel_cucumber features/web/ -o \"-p jenkins1\" -n 3" 
p 'start rerun' 
rerun_successful = run_rake_task("features:jenkins_rerun") 

unless selenium_successful || rerun_successful 
    raise 'Cucumber tests failed' 
end 
end 

第一執行啓動套件具有平行測試。這裏是黃瓜配置文件:

jenkins1: 
    <%= std_opts %> 
    HEADLESS=true 
    --tags @part1 
    --tags [email protected] 
    --format junit 
    --out log/junit 
    --format ParallelTests::Cucumber::FailuresLogger 
    --out parallel_cucumber_failures.log 

在這之後完成。第二次執行開始,啓動記錄在文件中的失敗測試。該執行的黃瓜檔案是這樣的:

jenkins_rerun: 
    ENVIRONMENT=master 
    SCREENSHOT=true 
    HEADLESS=true 
    --format pretty 
    --no-source 
    --format junit 
    --out log/junit_rerun 
    @parallel_cucumber_failures.log 

現在。一切正常。唯一的問題是我使用jenkins中的junit報告來製作失敗和成功的測試圖。我可能有這樣的報道:

-------------------測試--- KO --- OK

首先執行--- 75- --- 10 ---- 65

重新運行------------- 10 ------- 0 ---- 10

這是100%的綠色,因爲所有問題都是部署後不穩定造成的。所以我希望詹金斯的junit報告說75個測試已經啓動,75個OK,0個KO或者其他相似的東西。

現在,第一次執行的junit報告說75次測試中,我有10個KO;第二個junit說10次測試中有0個KO。

enter image description here

什麼可能是一個很好的解決這個?有可能混合兩個Junit報告的結果?

我也會接受能夠在jenkins中顯示junit報告,每個報告都帶有一個圖表。但我認爲jenkins只允許顯示一個junit報告圖。

+0

看看[this](https://pushprajsingh05.wordpress.com/2015/01/12/watir-test-reports/)博客。用簡單的步驟生成報告的真正好方法。 – paul 2015-01-24 18:05:39

回答

0

我終於解決了這個問題。

解決方案是創建一個「解析器」,通過重新運行生成的Junit文件搜索(使用RegEx),然後轉到原始/第一次運行的Jnuit文件,並重寫這些測試的結果在重新運行期間通過。

最後,如果在重新運行中一切正常,則junit圖是100%綠色,並且沒有失敗警報。

+0

你好,有關你如何實現這一點的更多細節?試圖在此刻做同樣的事情,謝謝 – Richlewis 2016-06-30 08:50:14