如果我通过NuGet将OpenCover安装到解决方案中,我会在例如packages \ OpenCover.4.5.1604文件夹下获得预期的文件。但是,OpenCover的分析器需要COM注册才能正常运行。我认识到可以使用-register
命令对这些命令进行运行时注册,但是在具有多个解决方案的计算机上,可能会安装不同版本的OpenCover(并且可以同时执行它们 - - 例如,构建服务器),这似乎有问题。
This SO answer表示单独调用regsvr32
来注册分析器一次在构建服务器上会更好,这是有道理的。但是在通过NuGet(进入解决方案)下拉OpenCover的情况下,是否有适当的构建服务器解决方案?或者NuGet只是获取文件的一种方便方法,但它们应该真正复制到一个集中位置然后注册,而不是试图从特定于解决方案的版本运行?
答案 0 :(得分:0)
在我的构建机器上(使用通过nuget拉取的opencover)我使用-register:user
选项;这会为该用户帐户注册,并在执行目标进程后取消注册。
OpenCover还注册了一个密钥,用于与仅与其执行的进程相关的分析器进行通信,这样多个OpenCover控制台可以根据需要并行运行; OpenCover有一个名为pedigree的dogfood测试(opencover执行opencover执行nunit),它可以运行该功能。
但是我的构建机器一次只运行一个构建脚本。大多数构建机器代理都这样做,因为它通常更快,你使用哪一个?
如果你有一个OpenCover无法处理的场景,请在论坛上提出问题 - 否则开心测试。