从
Xcode 6.4升级到
Xcode 7(现在为7.0.1)后,我的项目在启动单元测试时会崩溃.我的iOS项目正在使用魔法记录,应用程序在这个断言中崩溃:
+ (NSManagedobjectContext *) MR_defaultContext
{
@synchronized(self) {
NSAssert(MagicalRecordDefaultContext != nil,@"Default context is nil! Did you forget to initialize the Core Data Stack?");
return MagicalRecordDefaultContext;
}
}
我已经评论过我以前的所有测试,并且这两个测试都显示出相同的行为:
#import <XCTest/XCTest.h>
@interface BadTests : XCTestCase
@end
@implementation BadTests
- (void)setUp {
[super setUp];
}
- (void)tearDown {
[super tearDown];
}
- (void)testSanity {
XCTAssert(1 == 1);
}
@end
和
#import <XCTest/XCTest.h>
#import <MagicalRecord/MagicalRecord.h>
@interface BadTests : XCTestCase
@end
@implementation BadTests
- (void)setUp {
[super setUp];
NSLog(@"*** USING IN MEMORY STORE ***");
[MagicalRecord setLoggingLevel:MagicalRecordLoggingLevelDebug];
[MagicalRecord setupCoreDataStackWithInMemoryStore];
}
- (void)tearDown {
[MagicalRecord cleanUp];
[super tearDown];
}
- (void)testSanity {
XCTAssert(1 == 1);
}
@end
用相同的测试恢复到Xcode 6可以解决问题.
解决方法
结束通过调整我的Podfile解决问题:
link_with 'TestApp','TestAppTests','TestAppUITests'
platform :iOS,'8.1'
target 'TestApp' do
pod 'MagicalRecord'
end
target 'TestApp' do
pod 'OHHTTPStubs'
end
以前我的pod文件看起来像这样:
platform :iOS,'8.1' pod 'MagicalRecord' pod 'OHHTTPStubs'