小编Dan*_*iel的帖子

在CruiseControl.NET中提供OpenCover报告

我正在尝试将OpenCoverCruiseControl.NET集成.此时我已经通过构建系统进行了修改,因此它在OpenCover下运行我的nunit测试.然后,我使用ReportGenerator生成Xml和Html报告.

假设可以将ReportGenerator生成的报告集成到CruiseControl.NET webapp中,我该如何将它们集成?

NCover有自己的NCoverReporting任务可以使用,但由于我没有运行NCover,我无法将其输出与OpenCover生成的XML报告进行比较.

相关的想法/问题:

  • OpenCover默认生成一个XML文件,但cc.net可以使用该XML文件吗?
  • ReportGenerator还生成XML,它们是否适用于像cc.net这样的东西?
  • cc.net有一个合并日志的文件合并发布者,但我还没有找到任何文档,说明cc.net使用/使用哪些文件格式.

cruisecontrol.net code-coverage opencover reportgenerator

6
推荐指数
1
解决办法
2680
查看次数

Mono Cecil - 初始化局部变量

我有以下方法:

public void DoSomething()
{
  Console.WriteLine("");
}
Run Code Online (Sandbox Code Playgroud)

我想用 Mono Cecil 修改此代码。我想在方法中创建一个自定义类的实例:

public void DoSomething()
{
  MyClass instance = new MyClass();
  Console.WriteLine("");
}
Run Code Online (Sandbox Code Playgroud)

目前我使用以下代码:

  var constructorInfo = typeof(MyClass).GetConstructor(new Type[] { });
  MethodReference myClassConstructor = targetAssembly.MainModule.Import(constructorInfo);

  var processor = targetMethod.Body.GetILProcessor();
  var firstInstruction = targetMethod.Body.Instructions[1];

  var instructions = new List<Instruction>() {
      processor.Create(OpCodes.Newobj, myClassConstructor),
      processor.Create(OpCodes.Stloc_0)
  };

  foreach (var instruction in instructions)
  {
      processor.InsertBefore(firstInstruction, instruction);
  }
Run Code Online (Sandbox Code Playgroud)

应用这些更改后,程序无效且无法执行。如果我使用“IL DASM”查看生成的代码,则缺少以下语句:

.locals init ([0] class [MyAssembly]MyNamespace.MyClass instance)
Run Code Online (Sandbox Code Playgroud)

IL的其余部分是一样的,就好像我直接编译了完整代码一样。任何想法我做错了什么?

c# mono.cecil

2
推荐指数
1
解决办法
3107
查看次数