【发布时间】:2014-12-11 02:27:12
【问题描述】:
我想在我的Xcode 项目中实现单元测试,并且想在不需要启动应用程序的情况下运行测试。
原因是,我有一个基于核心数据的文档应用程序,它还使用 cvdisplay 链接来控制后台线程中的连续呈现。
令我震惊的是,我不需要运行应用程序来测试核心数据数据模型功能,无论如何这应该与视图内容不同。此外,我想隔离和性能测试我的后台渲染进程,这在应用程序运行时似乎非常困难,但在没有应用程序运行的情况下很容易做到,只需获取正确的类并为其提供正确的数据。
我看到其他问题有针对 6 之前的 Xcode 版本的答案,但答案似乎不适用于当前版本。
文档现在对应用程序和库测试进行了区分。库测试针对库目标运行。
目前我不确定是否要将我的代码重新组织到不同的库中,并且更愿意避免它或以某种方式伪造它。
我在 ios 的某个地方看到了一个与此相关的 openradar,但我对 osx 很感兴趣。
有人对此有任何见解吗?
编辑:现在学习处理现有设置,测试完整的应用程序运行,我可以对其进行一些检查,然后关闭所有文档并关闭显示链接。
然后我可以运行测试,在内存数据存储和上下文中创建我自己的持久存储协调器,以及测试我的渲染类,而不必担心与其他显示线程发生冲突。
我现在在链接源时遇到了麻烦,我似乎无法正确解决,我摆弄设置,它似乎工作了一段时间,然后突然停止使用未定义符号再次构建 x86_64 架构:错误,或者与第 3 方私有框架链接的问题。我浏览了网络,更改了一些东西,它又开始工作了。然后我添加了一些测试,导入了更多我的类,事情又停止了。,.. 真气
编辑 2:现在几乎所有排序,但可能不是非常有效。对于每个测试用例类,我打开或关闭文档并在 +(void)setup 方法中启动或停止显示链接。我在 +(void)tearDown 中不做任何事情,让设置根据当前状态决定如何进行。
虽然这意味着可以从一个测试类流向另一个最小化文档的打开和关闭,但似乎没有一种方法可以对测试进行排序,以便我可以将它们组合在一起。
顺便说一句,我还解决了我提到的链接问题 (XCode 6 Testing Target Troubles),但与这个问题并不真正相关。
【问题讨论】: