wake-up-neo.net

VS 2017 entdeckt keine Tests auf .NET Core

kann mir jemand helfen, dass VS2017 mit .NET Core-Testprojekten arbeitet? 

Ich habe versucht, aus den VS 2017-Vorlagen MSTest- und xUnit-Komponententestprojekte für .NET Core zu erstellen. Keiner von ihnen funktioniert im Test-Explorer (wird nicht erkannt), jedoch funktioniert die Ausführung von dotnet test aus dem Projektordner einwandfrei.

Schritte zum Reproduzieren:

  1. Erstellen Sie ein neues Projekt in VS 2017
  2. Wählen Sie entweder die Vorlage Unit Test Project (.NET Core) oder xUnit Test Project (.NET Core)
  3. Implementieren Sie einen beliebigen Unit-Test
  4. Bauen Sie die Lösung auf
  5. Gehen Sie in den Text-Explorer und versuchen Sie, Run All 

An diesem Punkt sollte das Ausgabefenster Ihnen mitteilen, dass 0 Tests entdeckt wurden

.csproj datei:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>

Wenn ich versuchte, ein MSTest-Einheitentestprojekt aus der Vorlage zu erstellen, die auf .NET Framework abzielt (full, nicht .NET Core), hat es funktioniert.

Irgendwelche Ideen?

18
valorl

Am Ende wurde das Problem gelöst, indem mein System PATH env geändert wurde. Variable von C:\Program Files\dotnet\ bis C:\Progra~1\dotnet\, wie in beantwortet. XUnit-Tests können nicht mit Visual Studio 2017 RC abgerufen werden.

Danke an Alexey für den Vorschlag in den Kommentaren :)

14
valorl

Ich glaube, ich habe dasselbe Verhalten erlebt. Versuchen Sie, Ihre Lösung so zu erstellen, dass VS Ihre Tests ermitteln kann. Andernfalls teilen Sie bitte Ihre Tests csproj-Datei mit, um sicherzustellen, dass Sie auf korrekte Pakete verweisen. Meins ist: 

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>

UPDATE: Ich habe ein bisschen herumgespielt und es sieht so aus, als könnte VS die Tests ohne <OutputType>Exe</OutputType> nicht finden

UPDATE 2: Versuchen Sie, Folgendes zu csproj hinzuzufügen, da ich in einigen Fällen VS fügt.

<ItemGroup>
  <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
5
Andrii Litvinov

Ich traf dieses Problem mit VS 2017, bei dem MSTest-Komponententests auf .NET Core nicht entdeckt wurden.

Die Tests-Ausgabe berichtete nur, dass Nulltests entdeckt wurden.

Bei der Ausführung von dotnet test MyProject.csproj -t in einer Eingabeaufforderung wurde empfohlen, dass nicht die korrekte .NET Core-Laufzeitumgebung installiert wurde, die der RuntimeFrameworkVersion des Projekts entspricht.

Durch die Installation des neuesten VS 2017-Updates und der .NET Core-Laufzeitumgebung wurde das Problem behoben.

2
DGreen

Ich hatte das gleiche Problem. Ich habe es gelöst, indem ich das Paket "Microsoft.NET.Test.Sdk" von Nuget installiert habe. 

1
pgoostree

Ich hatte auch dieses Problem und es wurde behoben, indem sichergestellt wurde, dass mein Projekt und Testprojekt dieselbe Ziel-Framework-Version in der .csproj-Datei hatte

<TargetFramework>netcoreapp1.0</TargetFramework>
0
coolhand

Ich hatte das gleiche Problem nach der Migration von project.json zu csproj. Und behoben, indem net451-Zielframework entfernt wurde und nur netcoreapp1.1 verlassen wurde. Jetzt funktioniert es perfekt und entdeckt es jedes Mal. 

Wenn Sie viele Framework-Ziele benötigen, sollten Sie dies natürlich nicht tun. Verwenden Sie einfach CLI, um sie zu testen.

0
Flaksirus

Stellen Sie außerdem sicher, dass Sie keine mixed PackageReference-Versionen in den * .csproj-Dateien haben, wenn Sie mehrere Testprojekte und dasselbe Ausgabeverzeichnis haben und die Pakete von test project aktualisieren, insbesondere MSTest.TestAdapter sowie MSTest.TestFramework

0
CodingYourLife

Dies kann auf inkonsistente Projekteinstellungen für die Prozessorarchitektur zurückzuführen sein. Das Testprojektziel muss mit der Test-Standardprozessorarchitektur übereinstimmen.

Check https://stackoverflow.com/a/47454276/2700303

0
ByteArtisan