我想以这样的方式运行我的UI测试:如果测试套件中的任何给定测试我们将失败,则整个测试运行停止。我知道有一个选项可以在失败后继续,但这仅适用于单个测试用例。
我计划在诸如Teamcity之类的CI服务器上运行UI测试,我自然希望如果任何测试失败而构建过程失败,而不必等待剩余的测试完成。有没有人知道这是否可能,或者我是否需要以某种方式解析每个测试用例的输出以检测故障并在那时停止,可能还有一些退出代码?
感谢。
答案 0 :(得分:0)
我真的建议您使用fastlane
。您可以在那里配置测试,因为fastlane
有一个名为stop_after_first_error
的特定标志,它基本上可以满足您的需要!
你可以在这里找到它: https://github.com/fastlane/fastlane
答案 1 :(得分:-1)
我认为没有任何方法可以本地做到这一点。您可能想重新考虑如何编写UI测试,因为您不应该这样做。话虽这么说,这是你可以做的事情;它可能有点像黑客。
创建一个类似lastTestPassed
的布尔标志。当断言为true时,将标志设置为true。然后,在setUp
方法中,检查lastTestPassed
是否为真。如果是,则将其设置为false;如果不是,则不允许测试运行(可能使用XCTFail()
)。
同样,这有点像黑客,但可能会有效,直到您可以重构UI测试的工作方式。