2011-10-04 76 views
0

我使用FoneMonkey + Jenkins進行自動化iOS測試。我請FoneMonkey生成XML報告(FM_ENABLE_XML_REPORT - 設置爲TRUE)並使用waxsim運行它。今天我發現,當應用程序崩潰時(即由於NSInvalidArgumentException)xml報告沒有生成。然後在Jenkis中,我看到100%傳球(我使用標準的JUNIT插件),顯然不是這樣。Jenkins運行期間FoneMonkey測試崩潰

察覺這個問題的唯一方法是: 一)分析詹金斯控制檯日誌(即尋找*** Terminating app due to uncaught exception) B)發現,在詹金斯報告運行測試的次數越低則perviously(這是我的隊友是如何發現的問題)。

我知道我可以使用Jenkins Text Finder插件解決方案a),但我想要準確的報告。

有沒有辦法實現它?如果否,FoneMonkey是否有用?

回答

-1

如果執行工具失敗(由非零退出代碼指示),Jenkins會檢測到這一情況並將構建標記爲失敗。如果工具被打破,詹金斯可以做的不多。

對於你的情況,我看到幾個可能性:

  • FoneMonkey應該是固定的,當被測試的應用程序崩潰
  • FoneMonkey應該是固定的,始終輸出XML返回一個非零退出代碼,即使當被測應用程序崩潰
  • 你可以寫一個自定義的FoneMonkey輸出到JUnit的解析器,而不是依靠FoneMonkey(例如,類似的項目存在解析Android的測試運行器輸出)
+0

謝謝,但並不是那麼容易。 1. FoneMonkey只是lib添加到應用程序,所以它可以返回退出代碼到主機(它運行在waxsim上)。 2.因爲它是lib,所以當應用程序崩潰時它不能做任何事情(即屬性報告)。 3.我知道在Android上它是儀器/測試運行器等,在iOS上沒有。所以唯一的辦法就是分析整個日誌(比如在android中解析logcat)。 –

+0

啊,你必須嵌入它?這聽起來不太好。但是,如果測試運行器在應用程序失敗的情況下不返回非零輸出,那肯定是一個錯誤。無論如何,如果FoneMonkey在應用程序崩潰時無法生成報告,那麼在構建結束時如何生成報告?你能整合像BPOCUnitXMLReporter這樣的東西,而不是依靠FoneMonkey的輸出嗎?你有沒有向他們的錯誤跟蹤器提出問題,詢問這些問題?什麼阻止你解析日​​志輸出? –

+0

我認爲BPOCUnitXMLReporter僅適用於OCUnit測試。關於返回非零退出代碼 - 我不確定這是否是運行測試時的最佳方法,例如,當ruin JUnit測試時,Jenkins的默認行爲只是將構建標記爲unstable並不成功 - http://stackoverflow.com/questions/ 1004912 /哈德森-集結成功與 - 單元 - 測試 - 故障。這也是不好的,因爲它只會運行到第一次失敗,我想運行所有測試,並有包含所有崩潰的報告(我重新啓動每個測試的waxim - 我使用env變量告訴FoneMonkey它應該運行哪個測試)。 –