OpenCover -register参数导致未处理的异常

时间:2011-10-14 13:13:15

标签: nunit jenkins opencover

当我在Opencover中使用-register选项时,我得到一个未处理的异常

C:\hudson\jobs\SPIN.Accounts.AccountNode\workspace>"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -target:"C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe"  -targetargs:"/noshadow mydll.dll" -output:"coverage-result.xml" -filter:"+[myNamespace]*" -register:user 

An exception occured: Object reference not set to an instance of an object.
stack:    at OpenCover.Framework.ProfilerRegistration.ExecuteRegsvr32(Boolean userRegistration, Boolean register, Boolean is64)
   at OpenCover.Framework.ProfilerRegistration.ExecuteRegsvr32(Boolean userRegistration, Boolean register)
   at OpenCover.Console.Program.Main(String[] args)

我已经尝试了-register和-register:user,两者都给了我同样的错误。这只发生在我在Jenkins中运行它时。

那么有人可以解释-register参数的意义是什么,以及如何才能让它在Jenkins中运行?感谢。

更新:我不确定为什么-register参数在Jenkins中不起作用,但我最终在Jenkins之外注册了分析器,现在可以正常工作了。不理想,但至少有一个解决方法。仍然希望找到一个适当的解决方案。我不确定是否有其他人有这个问题,但也许它值得在GitHub上进行一些wiki入口。

1 个答案:

答案 0 :(得分:0)

jenkins是否在服务帐户下运行?

如果有,是否有权注册COM对象?

-register:user选项适用于无权为所有用户注册服务的帐户,但AFAIK在作为服务运行时无效。

在具有正确权限的帐户下注册分析器是正确的方法,对于其他CI系统(如TeamCity)也是如此。