2016-06-30 14 views
6

Ich suche nach einem Test-Framework für eine Bibliothek netstandard1.6. Ich habe versucht, Getting started with xUnit.net (.NET Core/ASP.NET Core) ohne Erfolg zu folgen und zu bearbeiten. Folgen Sie dem Tutorial von xUnit mit einer dotnetcore lib auf VS 2015 Update 3 RTM mit meiner Datei project.json, um den Fehler zu reproduzieren.Handle netstandard1.6 mit xUnit

project.json:

{ 
    "version": "1.0.0-*", 
    "testRunner": "xunit", 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "xunit": "2.2.0-beta2-build3300", 
    "dotnet-test-xunit": "2.2.0-preview2-build1029" 
    }, 
    "frameworks": { 
    "netstandard1.6": { 
     "imports": "dnxcore50" 
    } 
    }, 
    "runtimes": { 
    "win10-arm": {}, 
    "win10-arm-aot": {}, 
    "win10-x86": {}, 
    "win10-x86-aot": {}, 
    "win10-x64": {}, 
    "win10-x64-aot": {} 
    } 
} 

Fehler:

Severity Code Description 
Error  NU1002 The dependency dotnet-test-xunit 2.2.0-preview2-build1029 does not support framework .NETStandard,Version=v1.0 

Kann ich auf eine Version von .netstandard von Dotnet-Test-xunit 2.2.0-Preview2-build1029 unterstützt degradieren? Gibt es irgendwelche bekannten Arbeiten um xUnit damit zu benutzen?

Da ich ein bisschen neues project.json und dotnetcore bin, könnte ich etwas nützliches verpasst haben.

Antwort

8

Das funktionierte für mich. Es scheint, dass existierende xunit-Versionen die netstandard 1.6-Bibliothek noch nicht unterstützen. Versuchen Sie, Ihr Projekt json so zu ändern, wie es in xunit site vorgesehen ist. Dies setzt auch voraus, dass Sie

{ 
    "version": "1.0.0-*", 
    "testRunner": "xunit", 
    "dependencies": { 
    "xunit": "2.2.0-beta2-build3300", 
    "dotnet-test-xunit": "2.2.0-preview2-build1029" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
      "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0" 
      } 
     } 
     } 
    } 
} 
0
  1. Überprüfen Sie die verfügbaren Versionen für die Xunit-Abhängigkeit. Ich denke, die 2.2.0 ist bereits endgültig.

  2. Ein xunit-Projekt muss netcoreapp1.0 und kein netstandard sein.

Siehe ihre Webseite für Details.

1

Ich schlage vor, die folgenden Versionen verwenden (dies ist das gleiche, wie in asp.net Kern repos wie Logging:

"dotnet-test-xunit": "1.0.0-*", 
"xunit": "2.1.0" 
-1

.NET CLI-Tool (Dotnet) Unterstützung ein Testprojekt erstellen:

testproj $ dotnet new -t xunittest 
Created new C# project in /home/bartonjs/dotnet/testproj. 
testproj $ cat project.json 

Produziert:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable" 
    }, 
    "dependencies": { 
    "System.Runtime.Serialization.Primitives": "4.1.1", 
    "xunit": "2.1.0", 
    "dotnet-test-xunit": "1.0.0-rc2-192208-24" 
    }, 
    "testRunner": "xunit", 
    "frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0" 
     } 
     }, 
     "imports": [ 
     "dotnet5.4", 
     "portable-net451+win8" 
     ] 
    } 
    } 
} 

Diese Versionen könnten besser zum Erfolg führen.

3

ein .net-Core-Bibliothek-Projekt erstellt Sie den netcoreapp1.0 TFM importieren können die Werkzeuge zu überzeugen, dass die Abhängigkeiten mit dem Zielrahmen vereinbar sind:

{ 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "xunit": "2.2.0-beta4-build3444", 
    "dotnet-test-xunit": "2.2.0-preview2-build1029" 
    }, 
    "frameworks": { 
    "netstandard1.6": { 
     "imports": [ "netcoreapp1.0" ] 
    } 
    } 
} 

Sie finden eine Tabelle mit Ziel-Framework-Monikern (TFM) in der unten verlinkten NuGet-Dokumentation, einschließlich einer Tabelle mit veralteten Frameworks, einschließlich dnxcore50 (ersetzt durch netcoreapp1.0):

https://docs.nuget.org/ndocs/schema/target-frameworks