0

我有一个运行 XCTest 单元测试的 Xcode 5 CI 服务器。

我的测试用例依靠断点来触发特定的动作。这些操作对于测试的运行是必不可少的。

如果我在本地运行测试,一切都会通过。问题是:当机器人在服务器上运行测试时,似乎断点被忽略了。

我尝试了一个带有警报声音的示例断点,仅用于测试。我共享断点并将共享断点提交到项目的 git 存储库。机器人正确地检查出包含断点的项目(我可以通过检查 /Library/Server/Xcode/Data/BotRuns/Cache/... 中的项目来验证这一点)。

但是,当机器人运行时,不会触发断点。我没有听到声音,执行也没有暂停。

这种行为在大多数情况下显然是有意义的,但在我的具体情况下 - 有没有办法配置机器人以便不忽略断点?

4

1 回答 1

1

无论您是否可以启用此功能,或者是否让您的测试依赖于被测系统外部的东西,例如断点,以确保您的测试通过对我来说似乎是一个损坏的设计。

理想情况下,您的测试应该能够以交互或非交互方式在任何机器上运行。由于您不能保证断点设置了“评估后自动继续”标志,因此它们似乎绝对不适合非交互式运行。

使用断点进行测试还会增加对 Xcode 的依赖,以便像其他构建系统一样运行测试,xcodebuild甚至xctool可能不理解项目文件中的断点。

我会重构您的测试以消除对断点的依赖。如果您需要帮助,这听起来像是一个很好的堆栈溢出问题;)

于 2014-03-14T14:22:20.523 回答