当我在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入口。
答案 0 :(得分:0)
jenkins是否在服务帐户下运行?
如果有,是否有权注册COM对象?
-register:user选项适用于无权为所有用户注册服务的帐户,但AFAIK在作为服务运行时无效。
在具有正确权限的帐户下注册分析器是正确的方法,对于其他CI系统(如TeamCity)也是如此。