-->

怎样才算完整代码覆盖率当我在TeamCity的一个MSTest的生成步骤调用dotCover?(Wh

2019-10-17 10:18发布

什么被认为是100%,当我在TeamCity的一个MSTest的生成步骤调用dotCover? 100%所有的编译代码的? 它是为它的测试已经触动了所有组件所有的代码? 是不是所有的测试都感动的类?

当我从它运行My.Tests.dll,这行是代码的TeamCity MSTest的构建步骤调用dotCover是被跟踪?

Answer 1:

dotCover只提供对语句级覆盖,在那里像NCover其他工具还包括功能和分支覆盖报告。

随着TeamCity的MSTest的生成步骤你指定要报告在“过滤器”字段中的覆盖范围,其组件。 这可以让你只需指定一个排除了.Tests模式或仅包括一个组件。 更多细节见的TeamCity的文档: http://confluence.jetbrains.net/display/TCD7/JetBrains+dotCover

我相信,如果你不指定任何过滤器,所有组件全部代码被加载到CLR包括(你必须使你的呼唤代码组件负载,所以一些组件可能不包含,这只是在加载懒洋洋的CLR)。 这是因为像dotCover工具使用CLR分析API和不仪器代码的前期。 需要注意的是dotCover将排除在GAC组件。



Answer 2:

不知道如果我完全理解你的问题,但会采取了一枪反正。 据我所知100%的覆盖率是指在项目的每一行代码都被你的测试用例行使。 基本上,这意味着你已经确保了控制通项目中的每一行代码流。

总的来说,我还从来没见过100%覆盖其很难测试每一个代码路径。 考虑由你的代码来处理例如不同类型的异常,你如何锻炼catch块通过一些测试情况下,每个异常? 您将需要以某种方式模拟一个例外,它并不总是那么容易。



文章来源: What constitutes full code coverage when I invoke dotCover from an MSTest build step in TeamCity?