第一次 UITest 失败时如何中止 Fastlane Scan 测试

Posted

技术标签:

【中文标题】第一次 UITest 失败时如何中止 Fastlane Scan 测试【英文标题】:How to abort Fastlane Scan tests when first UITest fails 【发布时间】:2018-01-23 17:29:01 【问题描述】:

基本上我需要的是在第一个失败时停止 UITests。 我正在使用带有 Fastlane Scan 的 Jenkins。

我可以选择在禁用失败后继续(但它只会阻止此特定测试继续):

override func setUp() 
...        
    continueAfterFailure = false
...

我的扫描文件包含“fail_build”选项。

但即使第一次启动失败,它也会继续运行。

提前致谢。

【问题讨论】:

【参考方案1】:

continueAfterFailure 表示当前测试失败后不会继续,但测试run会继续下一个测试。

如果您希望测试在单个失败后停止,您可以在tearDown() 中观察测试的失败状态并抛出致命错误以中止运行。

override func tearDown() 
  super.tearDown()
  if !testRun?.hasSucceeded 
    fatalError()
  

【讨论】:

hasSucceeded 对我不起作用。但检查 totalFailureCount 有效。 @MartinDinh 是正确的。 hasSucceeded 不适用于多个测试,因为它的值仅在测试运行结束时才是准确的。

以上是关于第一次 UITest 失败时如何中止 Fastlane Scan 测试的主要内容,如果未能解决你的问题,请参考以下文章

构建 Xcode UITest 失败并出现“打开输入文件时出错”

waitForExpectations 失败时在 UITest 上取得成功

UITest 失败“上传符号在 <外部符号> 中崩溃”

UITest 的 Storekit 配置文件

如何使用 UITest 和 Swift 3 单击编辑菜单

如何阻止我的 Xamarin.UITest 两次运行测试?