当我从 TeamCity 中的 MSTest 构建步骤调用 dotCover 时,什么构成完整的代码覆盖率



当我从 TeamCity 中的 MSTest 构建步骤调用 dotCover 时,什么被认为是 100%的?100% 都是编译的代码吗?是测试接触的所有程序集的所有代码吗?是测试触及的所有类吗?

当我从运行 My.Tests.dll的 TeamCity MSTest 构建步骤调用 dotCover 时,正在跟踪哪些行代码?

dotCover仅提供有关语句级覆盖率的报告,而NCover等其他工具也包括函数和分支覆盖率。

使用 TeamCity MSTest 构建步骤,您可以在"筛选器"字段中指定要报告的覆盖率。这允许您只为.Tests阵列指定排除项或只包含一个组件。有关更多详细信息,请参阅 TeamCity 文档:http://confluence.jetbrains.net/display/TCD7/JetBrains+dotCover

我相信,如果您不指定任何过滤器,则会包含加载到 CLR 中的所有程序集中的所有代码(您必须从您调用的代码中导致程序集加载,因此某些程序集可能不包括在内,这只是 CLR 的延迟加载)。这是因为像dotCover这样的工具使用CLR分析 API,并且不会预先检测您的代码。请注意,dotCover 将从 GAC 中排除程序集。

不确定我是否完全理解你的问题,但无论如何都会试一试。据我了解,100% 覆盖率意味着项目中的每一行代码都由您的测试用例执行。基本上,这意味着您已确保控制流通过项目中的每一行代码。

一般来说,我从未见过 100% 的覆盖率,因为很难测试每个代码路径。例如,考虑由代码处理的不同类型的异常,如何通过某些测试用例为每个异常执行 catch 块?您需要以某种方式模拟异常,这并不总是那么容易。

最新更新