UITests:没有叫deinit

Bar*_*zyk 8 xcode ios swift xcode-ui-testing

为什么当我在Xcode中测试我的控制器时一切都很好,但是deinit没有调用方法.这是对的吗?

虽然应用程序正常工作,但它很好,但不适用于UITest目标.

对于复杂的结构,模拟器会一遍又一遍地分配更多的对象,并且......根本不会解除分配.因此,在较慢的机器上,应用程序通常会在没有任何理由的情况下退出...并且无法完成测试.

使用Xcode 8,iOS 10,macOS Sierra.

rik*_*ola 0

如果没有看到测试代码示例,我无法明确回答您的问题,但是,您的案例让我对一些事情产生怀疑。

基本上发生的事情是应用程序正在为您运行的每个测试创建新的进程。代码中某处的内存泄漏将是首先要调查的问题。如果内存泄漏,测试框架启动一堆进程可能会导致崩溃,并在正常运行期间让该问题不被察觉。

另外,除非您通过测试类中的拆卸函数显式地取消初始化控制器,否则该进程通常会在测试结束时被终止。如果您想测试重新初始化,我建议在测试中显式触发拆卸来测试您的内存分配行为。另外,Xcode 分析功能可能对您有用。

如果您可以发布测试代码的示例,那将是一个很大的帮助,我将相应地编辑我的答案。