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

How can I detect if I'm running an EarlGrey test in my application?

出于测试目的,我想绕过应用程序的登录屏幕。我可以通过注释掉在 运行 测试时推送视图控制器的代码来做到这一点。然而,这并不理想。我想出了一个更好的方法来在我的方案中设置一个环境变量然后做:

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 环境中。