我有一些UIView类即使在覆盖范围内。我没有在单元测试目标下添加它们。无论是单元测试还是UI单元测试。但仍然显示那些文件。
我不知道它们是否包含在测试范围内。
问:我们如何将它们从单元测试覆盖中删除?问:他们是否涉及单元测试覆盖率?
单元测试范围包括的类:
未在测试目标中添加的类:
当您在项目中激活覆盖范围时,目标中的所有文件都将计算覆盖范围。
我建议您使用XCOV:https://github.com/nakiostudio/xcov
您可以运行coverage并将忽略的文件放在正确的范围内。
我认为您的问题与收集所有目标的代码覆盖率有关。
@testable import UnitTestExampleCodeCoverage
AppDelegate
,ViewController
,ViewController2
,ViewController3
,ViewController4
,View
,View2
,View3
,View4
。我添加到新目标:AppDelegate
,ViewController3
,ViewController4
,View3
,View4
所以只有这五个类应该是计算代码覆盖率的基础。这是整个项目:https://github.com/mStaruchowicz/SO55723759
快乐测试;)
当单元测试运行时,
问题是应用程序启动会启动您的正常序列,创建视图并可能启动一些网络调用。这不仅会干扰代码覆盖率报告 - 它可能会使您的单元测试中毒。例如,如果您通过单元测试触发通知来测试通知,则需要知道侦听该通知的唯一对象是由测试创建的,而不是来自应用程序启动。
忽略某些文件覆盖范围的另一个问题是:您将如何查看这些文件的单元测试覆盖率?
解决方案是使用不同的app委托进行测试,几乎不做什么。有关详细信息,请参阅How to Switch Your iOS App Delegate for Improved Testing