代码覆盖率分析包括内部类型

Code Coverage analysis includes internal Types

我有一个项目,运行 Visual Studio 2015 代码覆盖率分析针对该项目。在结果中,它在我无法测试的结果层次结构中包含内部 classes。我不想使用 InternalsVisibleToAttribute,但我也不喜欢它被算作代码覆盖路径的一部分。

有没有办法让 visual studio 忽略内部 classes,这样代码覆盖率结果只包括 public class 我实际可以接触到的es单元测试?

CachedTypeData是一个内部密封的class,带有一系列泛型方法。如您所见,该类型包含在我的结果中,紧挨着两个 public classes,Autosave<T>EngineTimer<T>.

Visual studio 没有这样的功能,但是,您可以在 Internal 类.

上添加 ExcludeFromCodeCoverage 属性

注意:Visual Studio 的 CCA 通过 IL 衡量 CC 的百分比,如果您的 Classes under test 使用 Internal method/class 那么那些 Internal method/class 会被覆盖。 所以在大多数情况下你不应该 split/exclude 你的 Internal 类.