2016-06-30 29 views
6

Szukam użyć ramy testowej dla biblioteki netstandard1.6. Próbowałem bezbłędnie śledzić i edytować Getting started with xUnit.net (.NET Core/ASP.NET Core). Postępuj zgodnie z instrukcją xUnit z biblioteką dotnetcore na VS 2015 Update 3 RTM z plikiem project.json, aby odtworzyć błąd.Uchwyt netstandard1.6 z 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": {} 
    } 
} 

Błąd:

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

Mogę downgrade do wersji .netstandard obsługiwanego przez dotnet-test-xUnit 2.2.0-preview2-build1029? Czy jest jakieś znane narzędzie do używania z nim xUnit?

Ponieważ jestem trochę nowy project.json i dotnetcore, mógłbym pominąć coś użytecznego.

Odpowiedz

8

To zadziałało dla mnie. Wygląda na to, że istniejące wersje xunit nie obsługują jeszcze biblioteki netstandard 1.6. Spróbuj zmienić json projektu tak, aby wyglądał tak, jak podano w xunit site. Zakłada się również, że stworzyliśmy projekt biblioteki rdzenia .net

{ 
    "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. Sprawdź dostępne wersje zależności xunit. Myślę, że 2.2.0 jest już ostateczny.

  2. Projekt Xunit musi być netcoreapp1.0, a nie netstandard.

Zobacz ich stronę internetową w celu uzyskania szczegółowych informacji.

1

Proponuję stosując następujące wersje (to jest taka sama, jak w ASP.NET podstawowych repo jak Logging:

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

Narzędzie .NET CLI (DotNet) wsparcie tworzenia projektu testowego:

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

Produkuje:

{ 
    "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" 
     ] 
    } 
    } 
} 

wersje te mogą lepiej prowadzić do sukcesu.

3

można importować netcoreapp1.0 TFM przekonać oprzyrządowanie, że zależności są zgodne z ramami docelowej:

{ 
    "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" ] 
    } 
    } 
} 

Tabelę docelowych oznaczeń struktury (TFM) można znaleźć w dokumentacji NuGet dołączonej poniżej, w tym tabelę przestarzałych frameworków, która obejmuje dnxcore50 (zastąpiona przez netcoreapp1.0):

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