|
2
|
| Aviad Ben Dov · 技术社区 · 15 年前 |
|
|
1
3
不幸的是,戴夫的解决方案不起作用-我总是出错。我最终让GHUnit负责我的项目,通过调试发现了问题,但它有它自己的问题,所以我现在使用它和ocUnit,也就是 轻微地 在“结果”选项卡中显示结果时更好地集成。 叹息 . 我们什么时候能看到 好的 完整的OBJ-C单元测试框架? |
|
|
2
3
这可能在最近的xcode中被修复了,但我通过这样做而变得僵尸。
|
|
|
3
2
好,
因此,解决这个问题的方法是使测试不在构建阶段运行,而是作为可执行文件的一部分运行。 我是这样做的:
现在,您可以选择单元测试包作为活动目标,并选择OTest可执行文件作为活动可执行文件,然后构建和调试。这将允许您设置断点,设置其他环境变量(如
如果只想调试某个套件或特定的单元测试,可以更改
|
|
|
4
2
我花了相当长的时间,但我终于设法使它为我的项目工作。 为了创建我遵循的“逻辑”测试 Apple guidelines on creating logic tests . 一旦您了解逻辑测试是在构建期间运行的,这就可以很好地工作。 为了能够调试这些测试,需要创建一个调用这些测试的自定义可执行文件。文章通过 Sean Miceli on the Grokking Cocoa blog 提供执行此操作的所有信息。然而,紧随其后并没有立即取得成功,需要进行一些调整。 我将回顾肖恩的教程中介绍的主要步骤,其中提供了一些“针对假人”的大纲,我花了一些时间来了解:
步骤1-设置目标
两者的名称可以是任何东西,但我会避免空格。 步骤2-设置otest这里最重要的一点是要获得正确的otest,即当前iOS的otest,而不是默认的Mac版本。这在肖恩的教程中有很好的描述。以下是一些帮助我纠正问题的更多细节:
步骤3-设置otest参数和环境变量otest参数的设置很简单…但事实证明这是我最大的问题。我最初将逻辑测试目标命名为“LogictestsDebug”。使用这个名称和“logictests debug.octest”(带引号)作为otest的参数,我一直让otest以退出代码1终止,从不停止进入我的代码中… 解决方案 :目标名称中没有空格! Otest的论点是:
以下是用于复制/粘贴的环境变量列表:
请注意,我还尝试了Dyd_force_flat_名称空间,但这只会导致otest崩溃。 步骤4-运行Otest可执行文件要运行otest可执行文件并开始调试测试,需要:
您可以构建和运行可执行文件,并使用断点调试测试。 作为补充说明,如果在运行otest可执行文件时遇到问题,它可能与以下内容有关:
您可能会在控制台中收到一些消息,这可能会导致您认为环境变量有问题。您可能会注意到有关cfpreferences的消息。此消息不会阻止测试正常运行,因此如果在运行otest时遇到问题,请不要将注意力集中在它上面。 最后,一旦一切正常,您将能够在测试的断点处停止。 最后一件事…我在许多博客上读到,集成XcodeSentestKit的主要限制是在构建应用程序时无法运行测试。事实证明,这很容易管理。您只需要将逻辑测试包作为依赖项添加到应用程序项目中。这将确保在构建应用程序之前构建逻辑测试包,即运行所有测试。 为此,您可以将逻辑测试包拖放到应用程序目标上。 |
|
|
Danil · 种子/填充核心数据的最佳实践?[关闭] 1 年前 |
|
|
Robin · LazyVGrid项目预计不会击中测试区域 1 年前 |
|
|
Alex Smith · 移动到下一个视图控制器后如何显示警报? 1 年前 |
|
selcukctn · 如何在react native中制作无限动画? 1 年前 |
|
|
Nicolas Gimelli · iOS 18远程通信通知不起作用 1 年前 |