如何检测我的应用程序是否正在运行EarlGrey测试?

问题描述:

出于测试目的,我想绕过我的应用程序的登录屏幕。我可以简单地通过注释掉运行测试时推送视图控制器的代码。但是,这并不理想。我想出了在我的计划中设置的环境变量,然后做一个更好的办法:如何检测我的应用程序是否正在运行EarlGrey测试?

if ([NSProcessInfo processInfo].environment[@"TEST"]) { // Running EarlGrey test. }

我想知道是否有什么更好的办法,如果我正在EarlGrey测试,以检测?

由于从faq,你可能想使用一个构建配置,使您可以添加像一张支票 -

#if EARLGREY_ENV 
    NSLog(@"This is being run in an EarlGrey test."); 
#else 
    NSLog(@"Not an EarlGrey test."); 
#endif 

您还可以添加一个运行时检查像NSClassFromString("EarlGreyImpl") != nil,看看你是否正在运行在EarlGrey环境中。

+0

啊...建立时间标志。好吧,它比运行时检查稍好一点:) – khandpur