我有一个OS X应用程序;我们称之为 MyApp 。在MyApp目标内部,我们有一个 Singletons.swift 文件,该文件设置了例如数据库访问。
我还有一个UI测试目标 MyAppUITests 。如果我没有弄错的话,UI测试目标没有内部代码访问主机应用程序;主机以自己的调试模式构建,然后构建并单独运行UI测试。
在构建测试运行器时,是否可以让主机MyApp使用MyAppUITests组中的Singletons.swift文件?
当然,我可以在测试方案中添加一个环境变量RUNNING_UI_TESTS
。然后使用 SingletonsLoader.swift 替换MyApp中的Singletons.swift:
#if RUNNING_UI_TESTS
let Singletons = UITestSingletons()
#else
let Singletons = AppSingletons()
#endif
但这显然不太理想。如果我们正在构建应用程序本身,我更愿意包含一个文件,如果我们正在构建应用程序以成为测试目标的主机,我更愿意包含另一个文件。
这可能吗?