Após a atualização do Xcode 6.4 para o Xcode 7 (e agora 7.0.1), meu projeto falha ao iniciar os testes de unidade. Meu projeto do iOS está usando o Magical Record e o aplicativo trava nessa afirmação:
+ (NSManagedObjectContext *) MR_defaultContext
{
@synchronized(self) {
NSAssert(MagicalRecordDefaultContext != nil, @"Default context is nil! Did you forget to initialize the Core Data Stack?");
return MagicalRecordDefaultContext;
}
}
Eu comentei todos os meus testes anteriores, e ambos os testes mostram o mesmo comportamento:
#import <XCTest/XCTest.h>
@interface BadTests : XCTestCase
@end
@implementation BadTests
- (void)setUp {
[super setUp];
}
- (void)tearDown {
[super tearDown];
}
- (void)testSanity {
XCTAssert(1 == 1);
}
@end
e
#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
Revertendo para o Xcode 6 com os mesmos testes resolve o problema.
Respostas:
1 para resposta № 1Acabou resolvendo o problema ajustando meu Podfile:
link_with "TestApp", "TestAppTests", "TestAppUITests"
platform :iOS, "8.1"
target "TestApp" do
pod "MagicalRecord"
end
target "TestApp" do
pod "OHHTTPStubs"
end
Anteriormente, meu arquivo pod só se parecia com isso:
platform :iOS, "8.1"
pod "MagicalRecord"
pod "OHHTTPStubs"
0 para resposta № 2
Essa situação pode se originar da presença do antigo ambiente de tempo de execução, conforme mencionado nas notas da versão:
Processos Xcode podem ser encerrados inesperadamente se tempos de execução mais antigos do iOS Simulator (Xcode 6.x) estão presentes no disco
Para verificar se esta é a causa, você pode excluir todas as bibliotecas de tempo de execução antigas de / Library / Developer / CoreSimulator / Profiles / Runtimes