Xcode中的单元测试环境对我来说有点像黑盒子,但是从我看到的情况来看,我认为测试是以某种方式粘贴到主应用程序然后整个事情运行,执行测试而不是正常的app流程。
这很棒,因为它允许我在模拟器和真实设备上调试和运行测试。 (我认为这是不可能的,测试总是习惯于在模拟器上运行,做了一些改变?)但是我注意到在测试期间整个应用程序真的运行了,所有的花里胡哨。这不是一个理想的行为,因此我为Test方案设置了一个环境变量,如果我在application:didFinishLaunchingWithOptions:
中检测到变量,我跳过通常的初始化,只需设置一个虚拟窗口并等待测试装置到光洁度。
它应该像这样工作吗?是否有“标准”方法来检测应用程序是否作为测试装置的主机运行? (我正在使用Xcode 4.3的官方版本,如果这很重要的话。)
答案 0 :(得分:0)
一种选择是停止将主应用程序用作捆绑加载器。相反,人们可以创建一个简单的应用程序(让我们称之为TestRunner),它只显示一个空屏幕,服务器作为测试套件的捆绑加载器:
$(BUILT_PRODUCTS_DIR)/TestRunner.app/TestRunner
。$(BUNDLE_LOADER)
。这会为项目添加额外的目标,但会使主应用目标独立于测试。