当我只需要基本覆盖率数据时如何提高 OpenCover 性能?
How to improve OpenCover performance when I need only basic coverage data?
我需要 运行 针对 1000 多个测试的电池进行 OpenCover。我只对:
感兴趣
- % 的行已覆盖
- 哪些行被覆盖,哪些不被覆盖
我不需要:
- 访问次数
- CPU 周期数/实际执行时间
- 任何绩效报告
从文档中我可以看到可以使用一些参数来调整性能:
- -日志:关闭
- -通过哈希合并
- -skipautoprops
- -阈值:1
- -排除属性:???
- -隐藏:全部
- -旧式
然而,由于文档不清楚这些属性如何影响性能,我目前正在采用试错法,这实际上可能需要几天才能执行,因为我有数百个测试要 运行,因此,我们将不胜感激任何信息。
-threshold:1
会产生一些效果,因为它减少了发送到主机的数据,但是 'injection' 点仍将执行 - 一旦检测到代码在配置文件 运行.
-oldstyle
也会产生一些影响,因为它每个序列点使用较少的 IL,但由于安全问题,它并不总是能正常工作 - YMMV
-skipautoprops
如果您不关心 属性 用法,则禁用自动属性检测,例如
public string Name { get; set;)
如果代码被过滤器或属性排除,则被排除的代码不会被检测并且将 运行 以正常速度进行,因此您可能会发现排除热点(访问频繁的方法)并排除任何 assemblies/type 你不关心的可能对你的测试性能有帮助。
您指定的其他参数 -mergebyhash
和 -hideskipped:All
会影响 XML 输出。
我需要 运行 针对 1000 多个测试的电池进行 OpenCover。我只对:
感兴趣- % 的行已覆盖
- 哪些行被覆盖,哪些不被覆盖
我不需要:
- 访问次数
- CPU 周期数/实际执行时间
- 任何绩效报告
从文档中我可以看到可以使用一些参数来调整性能:
- -日志:关闭
- -通过哈希合并
- -skipautoprops
- -阈值:1
- -排除属性:???
- -隐藏:全部
- -旧式
然而,由于文档不清楚这些属性如何影响性能,我目前正在采用试错法,这实际上可能需要几天才能执行,因为我有数百个测试要 运行,因此,我们将不胜感激任何信息。
-threshold:1
会产生一些效果,因为它减少了发送到主机的数据,但是 'injection' 点仍将执行 - 一旦检测到代码在配置文件 运行.
-oldstyle
也会产生一些影响,因为它每个序列点使用较少的 IL,但由于安全问题,它并不总是能正常工作 - YMMV
-skipautoprops
如果您不关心 属性 用法,则禁用自动属性检测,例如
public string Name { get; set;)
如果代码被过滤器或属性排除,则被排除的代码不会被检测并且将 运行 以正常速度进行,因此您可能会发现排除热点(访问频繁的方法)并排除任何 assemblies/type 你不关心的可能对你的测试性能有帮助。
您指定的其他参数 -mergebyhash
和 -hideskipped:All
会影响 XML 输出。