Sam*_*der 19 .net nunit ncover testdriven.net
我想从命令行运行coverage,但似乎无法获得NCover 1.5.8来检测代码.当我使用TestDriven.net运行覆盖测试时,它必须是可行的.差别似乎是TD.NET是能够得到NCover使用的框架4.0(在日志中得到这个在运行时:MESSAGE: v4.0.30319),但在命令行中我不能让它(我得到这个在日志中:MESSAGE: v2.0.50727)
那么如何让NCover在命令行中与nunit一起玩得很好,就像在TD.NET中一样呢?
Sam*_*der 27
经过更多搜索,我发现了这个:
如果您找到此线程,因为您试图让NCover 1.5.8与.NET 4一起使用,那么以下应该修复此错误:
打开命令提示符并键入以下设置COMPLUS_ProfAPI_ProfilerCompatibilitySetting = EnableV2Profiler
这指示.NET 4 CLR加载.NET Framework 2.0 Profiler.
有关详细信息,请参阅:http: //msdn.microsoft.com/en-us/library/dd778910.aspx
在这里的线程的末尾
这似乎解决了我的问题
编辑:
它并没有真正解决我的问题.现在它只允许生成coverage.xml,但它只包含v2.0框架程序集,所以只对.net 2.0程序集进行了分析....
哎呀.回到绘图板...
编辑2
哈利路亚!我通过随机谷歌搜索和更改的过程想出了这一点.无论如何,由于这里发现的一些指示,我能够弄明白我需要做的是改变运行代码的应用程序的exe.config(在这种情况下为nunit.console-x86.exe)文件不仅强制要加载的.net框架的特定版本,但也允许使用旧版激活策略.简而言之,我能够通过以下方式解决这个问题:
Run Code Online (Sandbox Code Playgroud)<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0.30319"/> </startup> </configuration>
在启动命令的环境中设置这些:
set ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
(不确定两者都是必要的,但这就是我所做的)
我还为NCover.Console.Exe.config添加了一个类似的设置,但事实证明这是不必要的.
编辑3
这是我正在使用的命令行(请注意,我将所有ncover和nunit以及我的测试程序集复制到一个目录中以简化操作)
NCover.Console.exe nunit-console-x86.exe /framework=4.0.30319 Your.Test.Assembly.dll //x coverage.xml //reg
| 归档时间: |
|
| 查看次数: |
3886 次 |
| 最近记录: |