2015-10-05 79 views
13

从Xcode 6.4升级到Xcode 7(现在7.0.1)后,我的项目在启动单元测试时崩溃。我的iOS项目使用神奇的记录,并在此断言的应用程序崩溃:Xcode 7魔法记录单元测试失败

+ (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可以解决问题。

+0

我有同样的问题,用相同的代码。你找到了解决方案吗? – ryancrunchi

+0

还没有。 :C – joshbillions

+0

您正在使用哪个版本的MR?我遇到了与2.2相同的问题,但尚未用2.3 – Jack

回答

1

端起来解决这个问题通过调整我的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' 
0

这种情况可以从旧的运行环境中存在干如发行说明中提到:

Xcode的过程可能会意外退出,如果旧的iPhone模拟器运行时将 (Xcode中6.x中)存在于磁盘

要检查是否是这种原因,您可以删除/库/开发商/ CoreSimulator /概况/运行时

所有旧的运行时库
+0

没有Xcode进程意外退出我能告诉。这个问题似乎与魔法记录。我从该目录中删除所有旧的运行时库,并得到相同的结果。 – joshbillions