我怎么知道我的应用程序当前用作测试包加载器?

时间:2012-02-17 10:24:55

标签: xcode unit-testing

Xcode中的单元测试环境对我来说有点像黑盒子,但是从我看到的情况来看,我认为测试是以某种方式粘贴到主应用程序然后整个事情运行,执行测试而不是正常的app流程。

这很棒,因为它允许我在模拟器和真实设备上调试和运行测试。 (我认为这是不可能的,测试总是习惯于在模拟器上运行,做了一些改变?)但是我注意到在测试期间整个应用程序真的运行了,所有的花里胡哨。这不是一个理想的行为,因此我为Test方案设置了一个环境变量,如果我在application:didFinishLaunchingWithOptions:中检测到变量,我跳过通常的初始化,只需设置一个虚拟窗口并等待测试装置到光洁度。

它应该像这样工作吗?是否有“标准”方法来检测应用程序是否作为测试装置的主机运行? (我正在使用Xcode 4.3的官方版本,如果这很重要的话。)

1 个答案:

答案 0 :(得分:0)

一种选择是停止将主应用程序用作捆绑加载器。相反,人们可以创建一个简单的应用程序(让我们称之为TestRunner),它只显示一个空屏幕,服务器作为测试套件的捆绑加载器:

  • 使测试目标取决于TestRunner。
  • 将测试目标的Bundle Loader设置为$(BUILT_PRODUCTS_DIR)/TestRunner.app/TestRunner
  • 将测试目标的测试主机设置为$(BUNDLE_LOADER)

这会为项目添加额外的目标,但会使主应用目标独立于测试。