我已经像这样创建了UITesting。我需要按顺序运行这3个文件,我需要这样命名。我觉得这很糟糕。我想更逻辑地命名(而不是Test1等)。是否可以按顺序重命名和运行?
另一个是我需要按字母顺序命名我的方法。我想随机命名并按顺序运行。我该怎么办?
- (void)test2CreatePost
- (void)test3ClickLikeInNewsfeed
答案 0 :(得分:2)
您可以通过嵌套函数来实现此目的。
// 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()
}
答案 1 :(得分:1)
函数嵌套适用于仅立即从XCode运行UI测试。但是当测试从命令行运行时,它们按字母顺序运行。我已经读过这个问题已经针对XCode 8中的单元测试修复了,但似乎不适用于UI测试。
例如,现在我有以下UI测试层次结构:
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
小心。
答案 2 :(得分:0)
您可以使用本答案中说明的步骤来实现此目的。
Running individual XCTest (UI, Unit) test cases for iOS apps from the command line
基本上你需要覆盖XCTestCase中存在的testInvocations,然后你可以控制测试用例执行的顺序。
如果您需要有关如何实现此目标的更多信息,请添加评论。