Xcodeで iOS appを作成しているとする。
cmd + u で test を 走らせるたびに、ちゃんとappが起動してしまって、起動プロセスが重いappの場合これが、ストレスになる。
main.m に ちょっと細工をする。
int main(int argc, char *argv[])
{
int ret = -1;
@autoreleasepool
{
BOOL inTests = (NSClassFromString(@"XCTest") != nil);
if(inTests) {
ret = UIApplicationMain(argc, argv, nil, @"MYTestAppDelegate");
}
else
{
ret = UIApplicationMain(argc, argv, nil,@"MYAppDelegate");
}
return ret;
}
}
XCTestというClassはXCTest.frameworkで定義されており、このframeworkをtargetに含んでいる方だけが inTests = YES となる。
MYTestAppDelegate は UIApplicationDelegateを継承している空実装class。XcodeでNew Fileして放っておく。
結論:Xcode で Test コードを走らせると、appが起動してしまっていやだけど、appは起動します。だから出来るだけ軽く起動するようにします。