【问题标题】:Xcode - Debugging a unit test targetXcode - 调试单元测试目标
【发布时间】:2011-07-31 06:27:54
【问题描述】:

我正在使用 OCUnit 为我的 iPhone 应用程序编写测试。 有什么方法可以调试单元测试并设置断点来查看到底发生了什么?

在不使用断点的情况下编写单元测试非常困难。

【问题讨论】:

  • +1 这对 XCode3 来说是邪恶的,很高兴有人问。

标签: objective-c xcode unit-testing debugging breakpoints


【解决方案1】:

使用 XCode 4.2,(通过在设置项目时选中“包含单元测试”复选框设置 SenTestKit 单元测试),产品->测试没有达到我的断点,但产品->执行操作->没有构建的测试似乎可以解决问题。希望这会有所帮助。

【讨论】:

  • 直到我在构建我的项目的方案的“测试”部分的“参数”选项卡中单击“使用运行操作的参数和环境变量”复选框后,这才开始为我工作.
  • 确保您在单元测试目标的构建设置中关闭了“构建后测试”。
【解决方案2】:

David Gelhar 发布的link 适用于 Xcode 3。

对于 Xcode 4,事情要简单得多。编辑您当前的方案并转到“测试”操作。单击底部的“+”并添加包含您要运行的测试的测试包。现在,当您选择 Product -> Test 时,它将运行这些测试。任何活动的断点都会像您预期的那样被命中。

【讨论】:

  • 太棒了,我安装了 xcode 4,我所要做的就是 Product->Test
  • +1 感谢您的回答,这是切换到 XCode4 的好理由。
  • 我希望这对我有用。我正在使用 Xcode 4,断点已打开,断点的大开关在模式中已打开,并且我在测试类和我要测试的类中都有一个断点,它像没有一样跳过这些事情很重要。不同之处可能在于我正在尝试进行逻辑测试,而不是应用程序测试。
  • 它应该适用于逻辑测试和应用程序测试;听起来您的设置有其他问题。对不起!
  • 我的问题和 hack-saw 一样。 @BJHomer,“应该工作”相当软。这是否意味着断点在逻辑测试中对您有用?或者您认为它们应该有效,但尚未验证?
【解决方案3】:

这是一篇博文:Debugging Cocoa application unit tests,其中包含如何执行此操作的说明(至少适用于 XCode 3;不确定 XCode 4)。

【讨论】:

    【解决方案4】:

    在 XCode 4 中要注意的另一项是您尚未将正在测试的类添加到单元测试目标以及主项目中。似乎没有必要,它会破坏你的断点命中能力。

    当您运行时,调试日志中的警告消息将是一条线索。消息将如下所示:

    “XXX 类在 YYY 和 ZZZ 中都实现了。将使用两者之一。哪个未定义。”

    一旦我从单元测试目标中删除了警告中提到的类,Xcode 就开始遇到断点。

    您可以通过单击 .M 文件并在“Target Membership”下的检查器窗口中关闭其在单元测试目标中的成员资格来从目标中删除类。

    【讨论】:

    • 我还注意到一些奇怪的行为,成员变量没有保持设置等,当我修复目标时这些行为就消失了。
    【解决方案5】:

    您可能还意外禁用了 Scheme -> Test -> Info 中的“Debugger: Debug Executable”选项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      相关资源
      最近更新 更多