是否可以在Xcode 5中的Instruments下运行基于XCTest的测试?

时间:2014-01-09 21:13:37

标签: xcode5 xcode-instruments xctest

查看XCTest和Xcode 5单元测试,但没有看到如何在Xcode 5中的Instruments下运行我的单元测试......

具体来说,我想在测试期间寻找泄漏(在这种情况下不必自动化,但显然有用)。

可能的?

5 个答案:

答案 0 :(得分:49)

在Xcode中,右键单击测试导航器中的测试,然后选择“Profile”TestName“”:

instruments profile unit test memory

答案 1 :(得分:21)

我认为这是最简单的方法:

  1. 在测试中的某处设置一个断点(我一直在设置方法中这样做)
  2. 在乐器中打开新文档
  3. 运行应用程序并确保它在断点处停止
  4. 从“工具”中的“目标”下拉菜单中选择“附加到流程”并向下滚动到您的流程
  5. 点击记录然后在XCode中恢复

答案 2 :(得分:8)

这是在Xcode 6下执行此操作的正确方法:

1)在Xcode项目中,显示“Products”文件夹,选择“.xctest”产品,右键单击,最后在上下文菜单中选择“Reveal in Finder”。

2)启动仪器并使用您选择的模板创建新文档。

3)为文档“选择目标...”

4)导航并选择Xcode用于运行位于/Applications/Xcode.app/Contents/Developer/usr/bin/xctest的测试的工具(您可以在终端中使用xcrun -f xctest找到此位置) - 您需要启用“导线包”以在里面导航Xcode应用程序。

5)拖动&从Finder进入“Arguments”字段,在步骤1中显示“.xctest”产品 - 这将进入其绝对路径。

6)点击“选择”。

您现在可以从Instruments运行您的单元测试了!

enter image description here

答案 3 :(得分:3)

我根据我正在测试的mac app目标创建了一个新目标,然后将xctest类添加到要编译的文件中。

然后我将 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework 添加到要链接的框架中。

然后将其路径 $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks 添加到运行路径搜索路径

然后在main.m中我添加了以下内容:

    XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
    [suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
    [suite run];

这在类 VideohogCachingTest 上运行测试 testCompleteSequentialText 我需要作为普通应用程序运行,因此允许我通过命令+ R或在此运行测试case,使用命令+ I进行分析。然后,我可以抓住一个僵尸并追踪问题,这对我来说不可能。 如果你想运行所有测试,你可以这样做:

XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];

答案 4 :(得分:0)

有几点注意事项:

应用

  • 活动监视器仅适用于真实设备

单元测试包

  • 仅适用于模拟器
  • 活动监视器不可用

UI测试套件

  • 配置文件不可用