/ / Xcode 7 Falha nos testes da unidade de gravação mágica - ios, object-c, core-data, magicalrecord

Falha nos testes da unidade de registro mágico do Xcode 7 - ios, object-c, core-data, magicalrecord

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 № 1

Acabou 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