什么是 Coverage Snapshot?
dotCover 会记录并存储覆盖率分析数据到覆盖快照中。
覆盖快照是一个数据单元,包含所有在覆盖运行中涉及的程序集的代码覆盖率统计数据,这些程序集在测试运行期间有可用的源代码或 PDB 文件。 覆盖快照保存在具有 *.dcvr 扩展名的文件中,可以稍后使用 Visual Studio(安装了 dotCover)或 dotCover 独立应用程序 打开。
对于 单元测试的覆盖 和 服务器端测试的覆盖 ,包含单元测试的程序集也会包含在覆盖快照中。
快照中的每个项目都有其自己的语句覆盖率百分比,计算方式是已覆盖语句数与语句总数的比值。 覆盖率会四舍五入到最接近的整数百分比。
当您 从文件中打开覆盖快照 或完成覆盖测试运行后,快照会在 Coverage Results Browser 窗口 或 Unit Test Coverage 窗口 中以可视化方式显示。
按测试数据
当您在本地机器上 运行单元测试的覆盖分析 时,dotCover 会将按测试数据(即哪个测试执行了哪些语句)记录到覆盖快照中。 当 分析覆盖结果 时,这些信息允许您 导航到覆盖测试。
在某些情况下,这些信息不会记录到快照中:
快照是在 应用程序覆盖运行 期间获取的
快照是使用 命令行工具 获取的。
快照是在覆盖 MsTests 时获取的,并且测试运行配置是在旧版 .testsettings 文件中指定的。 (在当前版本的 Visual Studio 中,建议使用 .runsettings 文件来配置单元测试。)
按测试数据还会影响当您在 单元测试会话窗口 中运行单个测试时,新快照与当前打开的快照合并的方式。 如果当前快照具有按测试数据,那么在重新运行单个单元测试后获得的快照将包含所有单元测试的信息。 否则,生成的快照将仅包含最近执行的测试的信息。
您还需要考虑的另一件事是,dotCover 会将 本地路径 记录到覆盖快照中的程序集和源文件中。 如果您打开在另一台计算机上记录的快照,并希望 在文件中可视化代码覆盖率 并 导航到覆盖测试 ,dotCover 将尝试重新映射路径。