作爲向我們的CI流中添加XCode的UI測試的一部分,我決定在構建失敗之前實現重新運行失敗的測試,這是由於測試框架的一般不可靠性。如何在fastlane掃描中識別失敗的測試用例以重新運行?
我可以避免使用rescue
塊立即生成失敗,這不是問題,報告文件(JUnit和HTML)的位置是固定的,因此可以使用File.readlines打開。
junit報告文件的格式是級聯的testsuites - > testsuite - > testcase - >失敗消息(如果適用),然後退出足夠遠的下一個元素。看起來很標準。
但是,在那一點上,我有點卡住了(它可能不是正確的道路,是否有一個更好的方法來做到這一點呢?)。在bash中,我將使用grep -B在失敗消息之前提取行,這將是失敗的測試用例的名稱,然後使用awk獲取相關的文本片段。簡單的兩個管道shell命令,然後我可以使用-only-testing參數反饋到scan/xcodebuild。
有沒有一種方法可以在Ruby中實現同等的簡單性,或者是一個junit插件,它可以讓我讀出除了單個失敗測試用例的名稱之外的任何東西?