1

如果我通过 NuGet 将 OpenCover 安装到解决方案中,我会在例如 packages\OpenCover.4.5.1604 文件夹下获得预期的文件。但是,OpenCover 的分析器需要 COM 注册才能正常运行。我认识到可以使用-register命令对这些进行运行时注册,但是在具有多个解决方案的机器上,可能安装了不同版本的 OpenCover(并且可能同时执行它们——例如,构建服务器),这似乎有问题。

作者本人的这个 SO 回答表明,regsvr32在构建服务器上单独调用一次来注册分析器会更可取,这是有道理的。但是在通过 NuGet(进入解决方案)拉下 OpenCover 的情况下,是否有合适的构建服务器解决方案?或者 NuGet 只是一种获取文件的便捷方式,但它们真的应该被复制到一个集中位置然后注册,而不是尝试从特定于解决方案的版本运行?

4

1 回答 1

0

在我的构建机器上(使用通过 nuget 拉取的 opencover)我使用该-register:user选项;这将为该用户帐户注册它,并在执行目标进程后取消注册。

OpenCover 还注册了一个密钥,用于与仅与它执行的那些进程相关的分析器对话,这样多个 OpenCover 控制台可以在需要时并行运行;OpenCover 有一个名为 pedigree 的 dogfood 测试(opencover 执行 opencover 执行 nunit),它可以锻炼该功能。

但是,我的构建机器一次只运行一个构建脚本。大多数构建机器代理都会这样做,因为它通常更快,您使用的是哪一个?

如果您有 OpenCover 无法处理的场景,请在论坛上提出问题 - 否则测试愉快。

于 2013-07-02T18:29:49.403 回答