当我从TeamCity中的MSTest构建步骤调用dotCover时,什么被认为是100%? 100%是所有已编译的代码吗?这是测试所涉及的所有组件的所有代码吗?这是测试所涉及的所有课程吗?
当我从运行My.Tests.dll的TeamCity MSTest构建步骤调用dotCover时,正在跟踪哪些代码行?
答案 0 :(得分:2)
dotCover仅提供语句级别覆盖率的报告,其中NCover等其他工具也包括函数和分支覆盖率。
使用TeamCity MSTest构建步骤,您可以在“过滤器”字段中指定要为其报告的覆盖范围。这允许您只为.Tests
模式指定排除或仅包含一个程序集。有关更多详细信息,请参阅TeamCity文档:
http://confluence.jetbrains.net/display/TCD7/JetBrains+dotCover
我相信如果您没有指定任何过滤器,则包含加载到CLR中的所有程序集中的所有代码(您必须从您调用的代码中导致程序集加载,因此可能不包含某些程序集,这只是CLR的延迟加载)。这是因为像dotCover这样的工具使用CLR分析API,并且不会预先设置代码。请注意,dotCover将从GAC中排除程序集。
答案 1 :(得分:0)
不确定我是否完全理解你的问题,但无论如何都会拍摄。 据我所知,100%的覆盖率意味着项目中的每一行代码都由您的测试用例执行。基本上这意味着您已确保控制流经项目中的每一行代码。
一般来说,我从未见过100%的覆盖率,因为它很难测试每个代码路径。例如,考虑代码处理的不同类型的异常,如何通过某些测试用例对每个异常执行catch块?你需要以某种方式模拟异常,这并不容易。