2012-05-24 14 views
7

Estaba tratando de usar OpenCover (descargado hoy) para obtener cobertura de mis pruebas. Aquí está la línea de comandos que he usado:Ningún resultado con opencover + xunit

OpenCover.Console.exe -target:"c:\Programmes2\xunit\xunit.console.clr4.x86.exe" -targetargs:"""C:\Sources\Project\BackOffice.Tests\bin\Debug\BackOffice.Tests.dll"" /noshadow " -output:bo.coverage.xml -targetdir:"C:\Sources\Project\BackOffice.Tests\bin\Debug" -filter:+[*]* 

Y aquí está la salida consigo

xUnit.net console test runner (32-bit .NET 4.0.30319.269) 
Copyright (C) 2007-11 Microsoft Corporation. 

xunit.dll:  Version 1.9.0.1566 
Test assembly: C:\Sources\Project\BackOffice.Tests\bin\Debug\BackOffice.Tests.dll 

31 total, 0 failed, 0 skipped, took 2.760 seconds 
Committing... 
No results - no assemblies that matched the supplied filter were instrumented 
    this could be due to missing PDBs for the assemblies that match the filter 
    please review the output file and refer to the Usage guide (Usage.rtf) 

El informe generado es siempre el mismo:

contexto
<?xml version="1.0" encoding="utf-8"?> 
<CoverageSession xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Modules /> 
</CoverageSession> 

Un poco más : Los PDB están presentes en la carpeta de destino, estoy ejecutando el símbolo del sistema como administrador. El proyecto probado es una aplicación .net 4/mvc 3. Mi computadora ejecuta Windows 7/32 bits. Sobre ese tema, no estoy seguro si eso es relevante de alguna manera, pero la carpeta x86 en el está vacía, incluso si obligo a la placa de destino a ser x86.

Además, cuando intento registrar OpenCover.Profiler.dll con regsvr32, aparece un error que dice que el dll puede no ser compatible con mi versión de Windows.

Si trato de usuario la -register o los -register: parámetros de usuario, consigo una excepción:

An exception occured: Failed to register(user:True,register:True,is64:False):3 the profiler assembly; you may want to look into permissions or using the -register:user option instead. C:\Windows\system32\regsvr32.exe /s /n /i:user "C:\Sources\Opencover\sawilde-opencover-be6e491\main\bin\Debug\x86\OpenCover.Profiler.dll" 
stack:  
    à OpenCover.Framework.ProfilerRegistration.ExecuteRegsvr32(Boolean userRegistration, Boolean register, Boolean is64) dans C:\Sources\Opencover\sawilde-opencover-be6e491\main\OpenCover.Framework\ProfilerRegistration.cs:ligne 59 
    à OpenCover.Framework.ProfilerRegistration.ExecuteRegsvr32(Boolean userRegistration, Boolean register) dans C:\Sources\Opencover\sawilde-opencover-be6e491\main\OpenCover.Framework\ProfilerRegistration.cs:ligne 45 
    à OpenCover.Framework.ProfilerRegistration.Register(Boolean userRegistration) dans C:\Sources\Opencover\sawilde-opencover-be6e491\main\OpenCover.Framework\ProfilerRegistration.cs:ligne 31 
    à OpenCover.Console.Program.Main(String[] args) dans C:\Sources\Opencover\sawilde-opencover-be6e491\main\OpenCover.Console\Program.cs:ligne 82 

También probé con un proyecto DLL (.net4) probado por un proyecto diferente (xUnit también), con el mismo resultado (falta de).

Cualquier ayuda apreciada!

+0

Mirando el rastro de la pila usted mismo ha creado el código - ¿ha probado el lanzamiento oficial? –

+0

Ok, ahora me siento bastante tonto porque ahora que lo mencionó pude encontrar la descarga Me sorprendió no encontrar uno la primera vez, pero como el archivo de lectura principal de la página [enlace] (https://github.com/sawilde/opencover#readme) acaba de mencionar que no he visto más que eso. Gracias por el puntero, lo intentaré de esa manera el próximo martes y actualizaré esta pregunta en consecuencia. –

Respuesta

4

La descarga del paquete de liberación resolvió la excepción del parámetro de registro. Pero el funcionamiento de la misma línea de comandos genera múltiples errores de este tipo:

BackOffice.Tests.HomeControllerShould.Redirect_To_Action_Feed_Index [FAIL] 
    System.MissingMethodException : Méthode introuvable : 'Void  System.CannotUnloadAppDomainException.SafeVisited(Int32)'. 
    Stack Trace: 
     à BackOffice.Tests.HomeControllerShould..ctor() 

con este resultado:

31 total, 31 failed, 0 skipped, took 0.241 seconds 
Committing... 
Visited Classes 0 of 44 (0) 
Visited Methods 0 of 183 (0) 
Visited Points 0 of 1352 (0) 
Visited Branches 0 of 322 (0) 

==== Alternative Results (includes all methods including those without corresponding source) ==== 
Alternative Visited Classes 0 of 53 (0) 
Alternative Visited Methods 0 of 268 (0) 

Después de mirar por cuestiones similares, encontré this issue on github y trató el parámetro -oldStyle. Solucionó el mío.

@Shaun Wilde, si por casualidad vuelve a ver esta pregunta, ¿podría decirnos si es la forma recomendada de resolverlo y si perdemos algo al usarlo en contra de la forma "normal" (también sugiero agregar este parámetro al documentation page

+1

Es la única forma que conozco de resolverlo hasta ahora ... El único problema pueden ser los problemas de confianza, p. si está utilizando AllowPartiallyTrustedCallersAttribute u otros atributos similares. La técnica oldStyle fue la forma original en que utilicé el código hasta que me topé con APTCA y Silverlight. –

+0

Ok gracias por la precisión. –

+0

El enlace de problema de github se ha movido a: https://github.com/opencover/opencover/issues/88 –

Cuestiones relacionadas