Xcode iOS:“非套件测试对象的报告测试用例事件”?

时间:2017-05-29 17:27:17

标签: ios objective-c xcode unit-testing

我继承了一个Obj-C项目,并开始为新代码添加一些测试。但是,当我尝试运行我添加的第一个测试时,我收到一条奇怪的错误消息,我似乎无法找到任何信息:

2017-05-29 12:12:24.636 AppName[7143:146141] *** Assertion failure in -[XCTestObservationCenter _testCaseDidStart:], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-12124/Sources/XCTestFramework/Observation/XCTestObservationCenter.m:253
<unknown>:0: error: TestClassTests : Reported test case event for non-suite test object -[(null) testMethod]

有趣的是,它显示了漂亮的绿色复选标记,即使出现此错误。还有一个完整的堆栈跟踪,如果有人有任何想法,我很乐意添加它。

Test Suite 'TestClass' failed at 2017-05-29 12:12:24.664.
 Executed 0 tests, with 1 failure (1 unexpected) in 0.000 (0.029) seconds
Test Suite 'AppNameTests.xctest' failed at 2017-05-29 12:12:24.665.
 Executed 0 tests, with 1 failure (1 unexpected) in 0.000 (0.031) seconds
Test Suite 'All tests' failed at 2017-05-29 12:12:24.666.
 Executed 0 tests, with 1 failure (1 unexpected) in 0.000 (0.032) seconds

所以我对这条消息的解释是我的测试功能似乎不在“测试套件”中,尽管我的印象是测试套件是从我的源代码自动生成的! Xcode甚至可以在测试选项卡中显示我的测试功能。我不认为我在这里做任何不寻常的事情,虽然我可能在我继承的项目文件中隐藏了一些东西。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到相同的错误。我对这个错误和错误消息一无所知,因此我开始在测试用例中删除代码,以查找此错误的根源。

@interface MyTests : XCTestCase
@property (nonatomic, strong) id class;
@end

@implementation MyTests
- (void)testNothing {
}
@end

看上面的代码,我几乎删除了测试用例中的所有内容,但是错误仍然存​​在。最后,当我删除@property (nonatomic, strong) id class;时,错误消失了!然后我把真实的测试代码放回去,一切都很好,没有错误。

我不知道此错误的原因,这很奇怪...