我在XCTestCase
类中有几个测试用例,例如test1,test2等
我希望仅在test1, test2
通过时运行testPrecondition
。我怎样才能做到这一点?
答案 0 :(得分:2)
您必须覆盖XCtest的testInvocations类方法。以下示例来自Github 代码是自我解释的。
+ (NSArray *)testInvocations
{
BOOL onlineTests = [[[[NSProcessInfo processInfo] environment] objectForKey:@"ONLINE_TESTS"] boolValue];
if (!onlineTests)
return [super testInvocations];
NSMutableArray *testInvocations = [NSMutableArray new];
for (NSInvocation *invocation in [super testInvocations])
{
if (![NSStringFromSelector(invocation.selector) hasSuffix:offlineSuffix])
[testInvocations addObject:invocation];
}
return [testInvocations copy];
}
如果你想决定在运行时运行哪个测试=>你的测试中有代码味道(依赖),这意味着你做错了测试。