2015-10-05 121 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