2016-11-28 1 views
2

Ich versuche Codeabdeckung mit Xunit und Fluent Assertions auf ASP.NET Core auszuführen. Ich bekomme jedoch eine Fehlermeldung, die ich nicht wirklich verstehe.Das Ausführen von XUnit und FluentAssertions mit OpenCover gibt die Fehlermeldung

Mein project.json des Testprojekts:

{ 
    "version": "1.0.0-*", 
    "testRunner": "xunit", 
    "debugType": "portable", 
    "dependencies": { 
    "xunit": "2.2.0-beta2-build3300", 
    "FluentAssertions": "4.15.0", 
    "dotnet-test-xunit": "2.2.0-preview2-build1029", 
    "ExpenseReporting": "1.0.0-*", 
    "Moq": "4.6.38-alpha" 
    }, 
    "commands": { 
    "test": "xunit.runner.dnx" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.1" 
     } 
     } 
    } 
    } 
} 

Mein Befehl für OpenCover:

OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:"test "C:\Users\johndoe\Desktop\Application\ExpenseReporting.Test\project.json"" -output:coverage.xml -register:user -filter:"+[*]* -[xunit*]* -[*]*Migrations.*" 

ich viele Fehler erhalten, aber alle sind von dieser Art:

An System.IO.DirectoryNotFoundException occured: Could not find a part of the path 'C:\projects\fluentassertions-vf06b\Src\FluentAssertions.NET40\Execution\MSTestFramwork.cs'. 

Es ist mir klar, dass das Verzeichnis nicht gefunden wird, weil es nicht existiert. Ich frage mich, warum es versucht, dort auf sie zuzugreifen?

+0

Haben Sie eine Lösung für dieses Problem gefunden? – valorl

Antwort

0

Sieht aus wie ein Problem mit Ihrer Projekt.JSON-Datei. Wenn Sie den Befehl dotnet verwenden, gibt es kein commands Element. Ihre project.json-Datei sollte in etwa so aussehen.

{ 
    "version": "1.0.0-*", 
    "testRunner": "xunit", 
    "dependencies": { 
     "xunit": "2.2.0-beta2-build3300", 
     "dotnet-test-xunit": "2.2.0-preview2-build1029", 
     "FluentAssertions": "4.15.0", 
     "ExpenseReporting": "1.0.0-*", 
     "Moq": "4.6.38-alpha" 
    }, 
    "frameworks": { 
     "netcoreapp1.0": { 
      "dependencies": { 
       "Microsoft.NETCore.App": { 
        "type": "platform", 
        "version": "1.0.0" 
       } 
      } 
     } 
    } 
} 

https://xunit.github.io/docs/getting-started-dotnet-core.html

Hier ist der Befehl, die Testläufe und Code-Coverage mit geöffnetem Deckel bekommt.

OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:"test C:\projects\HelloWorld.Tests" -register:user -filter:"+[*]* -[xunit*]*" -output:coverage.xml -oldStyle

+1

Ich bekomme immer noch die gleichen Fehler mit den FluentAssertions – Stefan

2

Es sieht aus wie OpenCover versucht FluentAssertions' Quellcode in seiner Berichterstattung Berichte aufzunehmen. Ich bin nicht ganz sicher, warum es das tut, aber ich konnte das umgehen, indem ich OpenCover sagte, FluentAssertions auszuschließen.

Dies ist der Filter Ich verwende:

-filter:"+[*]* -[*FluentAssertions*]*" 
+0

Interessant, aber das Hinzufügen von Filtern zumindest verhindert, dass die Fehlermeldungen angezeigt werden. Für Referenz und Verwendung mehrerer Filter: https://github.com/opencover/opencover/wiki/Usage#understanding-filters – ICantSeeSharp

Verwandte Themen