iOS按顺序运行UITesting(文件和function级别)

我已经创build了这样的UITesting。 我需要依次运行这3个文件,我需要这样命名。 我觉得这很糟糕。 我想命名更逻辑(而不是Test1等)。 是否有可能重命名和顺序运行?

在这里输入图像说明

另一个是我需要按字母顺序命名我的方法。 我想随机命名并依次运行。 我该怎么办?

- (void)test2CreatePost - (void)test3ClickLikeInNewsfeed 

function嵌套对于从XCode立即运行UItesting是很好的。 但是当从命令行运行testing时,它们按字母顺序运行。 我已经读过这个问题是在XCode 8的unit testing中修复的,但是它似乎不适用于UItesting。

例如,现在我有以下的UItesting层次结构:

 UITests TestCaseB TestCaseA 

当我从XCode 8.2.1运行它们时,它们的执行顺序与它们描述的相同,即:

 TestCaseB TestCaseA 

但是当我从命令行使用xcodebuild test TEST_TARGET_NAME=<TargetName> -scheme <UITestsSchemeName> destination 'platform=iOS Simulator,name=iPhone 7'它们以另一个顺序运行:

 TestCaseA TestCaseB 

小心。

您可以使用此答案中介绍的步骤来实现此目的。

从命令行运行iOS应用程序的单个XCTest(UI,Unit)testing用例

基本上你需要重写XCTestCase中的testInvocations,然后你可以控制testing用例执行的顺序。

如果您需要更多关于如何实现的信息,请添加评论。

你可以通过嵌套你的function来实现这一点。

 // Note that this function contains tests but does not follow the 'testXXX' naming convention func login() { // Implement your test here } func newsfeed() { // Implement your test here } func moreTab() { // Implement your test here } // Here is the test method that will run the tests in a user-specified order func testSomething() { login() newsfeed() moreTab() }