test driven .net nunit testdriven.net ncover

¿Forzar NCover 1.5.8 para usar el framework v4 como lo hace testdriven.net?



test driven download (2)

Después de más búsquedas encontré esto:

Si ha encontrado este hilo porque está intentando que NCover 1.5.8 funcione con .NET 4, lo siguiente debería solucionar este error:

Abra un símbolo del sistema y escriba el siguiente conjunto COMPLUS_ProfAPI_ProfilerCompatibilitySetting = EnableV2Profiler

Esto indica a .NET 4 CLR que cargue .NET Framework 2.0 Profiler.

Para obtener más información, consulte: http://msdn.microsoft.com/en-us/library/dd778910.aspx

al final del hilo here

lo que parece resolver mi problema

EDITAR :

no soluciona mi problema realmente Ahora solo permite la cobertura.xml para generarse, pero solo contiene los ensamblajes de la estructura v2.0, por lo que solo se perfilan los ensamblajes .net 2.0 ...

Grrr. De vuelta al tablero de dibujo ...

Editar 2

¡Aleluya! He descubierto esto mediante un proceso de búsqueda y cambio aleatorio de Google. de todos modos, debido a algunos indicadores que se encuentran here , pude averiguar que lo que tenía que hacer era alterar el archivo exe.config de la aplicación que ejecuta el código (nunit.console-x86.exe en este caso) no solo para forzar una versión específica de .net framework para cargar, pero también para permitir el uso de la política de activación heredada. Para acortar una larga historia, pude resolver esto:

  • Agregando a nunit-console-x86.exe.config la siguiente sección:

<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0.30319"/> </startup> </configuration>

  • configurando estos en el entorno desde el que se inicia el comando:

    set ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
    set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
    (No estoy seguro de que ambos sean necesarios, pero eso es lo que hice)

También agregué una configuración similar a la NCover.Console.Exe.config, pero resulta que no es necesario.

EDITAR 3

esta es la línea de comandos que estoy usando (tenga en cuenta que copié todos ncover y nunit y mis ensamblajes de prueba en un directorio para simplificar las cosas)

NCover.Console.exe nunit-console-x86.exe /framework=4.0.30319 Your.Test.Assembly.dll //x coverage.xml //reg

Quiero ejecutar la cobertura desde la línea de comandos, pero parece que no puedo obtener NCover 1.5.8 para instrumentar el código. Debe ser posible ya que cuando ejecuto pruebas de cobertura con TestDriven.net funciona. la diferencia parece ser que TD.NET es capaz de hacer que NCover use framework 4.0 (se obtiene esto en el registro cuando se ejecuta: MESSAGE: v4.0.30319 ) pero desde la línea de comandos no puedo hacerlo (recibo esto en el registro: MESSAGE: v2.0.50727 )

Entonces, ¿cómo puedo hacer que NCover sea agradable con nunit desde la línea de comandos, como lo hace con TD.NET?


Es posible que haya entendido mal su problema, pero si está intentando forzar a NCover para que se ejecute en el tiempo de ejecución de .NET 4.0, puede intentar colocar el elemento supportedRuntime en su archivo de configuración.

<configuration> <startup> <supportedRuntime version="v4.0.30319"></supportedRuntime> </startup> </configuration>

Esto forzará .NET 4.0 sobre el ejecutable sin la necesidad de reconstruirlo.