记录和断点在XCTests中不起作用

时间:2016-11-17 10:32:10

标签: ios xcode xctest

我有一个大型iOS项目,我的问题是,在运行XCTests时:

  • 应用程序内或测试本身内的断点未被点击
  • 在应用程序中
  • NSLog s / print在测试日志中不可见,但测试中的日志可见

我在同一工作区内有另一个iOS项目,断点和日志记录工作正常。

有问题的iOS项目最初是在Xcode的旧版本上创建的(大约2012年,不确定哪个版本完全正确);我看到this comment来自其他地方的人destroy()已经看到这个问题与旧的.xcodeproj

该项目本身是混合型Obj-C / Swift,使用了几个Cocoapods,一个watchkit扩展,并且测试分为三个目标。

鉴于我项目的复杂配置,我宁愿避免重新开始使用新的.xcodeproj,并尝试准确反映我的错误配置。

这个错误的原因是什么?我可以在现有.xcodeproj的配置中更改什么来修复它?

7 个答案:

答案 0 :(得分:4)

选择您的方案,转到编辑方案... 并勾选测试>下的调试可执行文件选项。 信息窗格。

调试器将附加到您的测试和目标应用程序,并且项目的两个部分都会出现断点。

请注意,当您的目标应用程序中遇到断点时,您的测试仍在运行,可能会超时,从而导致两个应用程序都被终止。

答案 1 :(得分:2)

项目文件中的罪魁祸首是DEPLOYMENT_POSTPROCESSING = YES

答案 2 :(得分:1)

我为我的UI测试制定了一个新方案,所以我假设调试器没有在没有断点的情况下附加到新的UI测试方案。但是,this post 对我有正确的答案。

  

在我的情况下断点没有在一次回调中被击中,所以我改变了#34; Swift Compiler" "优化等级"到"没有优化"在用于调试的项目目标构建设置中,它开始在Xcode 9.3和AppCode中工作。

答案 3 :(得分:1)

对于断点不起作用的情况,请检查您拥有的优化级别,如果您使新的-O断点开始产生奇怪的效果,请在调试模式下更改为-NoneNo Optimization

>

enter image description here

答案 4 :(得分:0)

这与您的测试方案的设置方式有关。我遇到了同样的问题,我通过转向Debbuging" ON"对于测试可执行文件。

Turn Debug executable to "ON"

答案 5 :(得分:0)

在我的情况下,日志没有出现在调试区域中的问题是由于OS_ACTIVITY_MODE参数已在Scheme-> Test-> Arguments中设置为“ disable”

enter image description here

答案 6 :(得分:0)

截至该日期,我已经尝试了所有答复中的所有内容,但最后,对我而言唯一有效的方法是删除目标并重新创建它。