unitarias unit test pruebas net dotnet asp unit-testing .net-core visual-studio-2017 test-explorer

unit-testing - pruebas - unit test c#



VS 2017 no descubre pruebas en.NET Core (8)

Al final, el problema se resolvió cambiando mi sistema PATH env. variable de C:/Program Files/dotnet/ a C:/Progra~1/dotnet/ , como se responde en No se pueden obtener las pruebas de XUnit que funcionan con Visual Studio 2017 RC

Gracias a Alexey por sugerirlo en los comentarios :)

¿Puede alguien ayudarme a conseguir que VS2017 funcione con proyectos de prueba de .NET Core?

Intenté crear proyectos de prueba de unidades MSTest y xUnit para .NET Core a partir de las plantillas de VS 2017. Ninguno de ellos funciona en el explorador de prueba (no se ha descubierto), sin embargo, ejecutar la dotnet test desde la carpeta del proyecto funciona bien.

Pasos para reproducir:

  1. Crear nuevo proyecto en VS 2017
  2. Elija la plantilla Unit Test Project (.NET Core) o la Plantilla del xUnit Test Project (.NET Core)
  3. Implementar alguna prueba unitaria arbitraria.
  4. Construir la solución
  5. Ve al explorador de texto e intenta Run All

En este punto, la ventana de salida debería indicarle que se descubrieron 0 pruebas

archivo .csproj :

<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>

Si intenté crear un proyecto de prueba de unidad MSTest desde la plantilla que apunta a .NET Framework (completo, no .NET Core), funcionó.

¿Algunas ideas?


Creo que experimenté el mismo comportamiento. Intenta construir tu solución para que VS pueda descubrir tus pruebas. De lo contrario, comparta las pruebas del archivo csproj para asegurarse de que hace referencia a los paquetes correctos. El mio es:

<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>

ACTUALIZACIÓN: He jugado un poco y parece que VS no puede encontrar las pruebas sin <OutputType>Exe</OutputType>

ACTUALIZACIÓN 2: Intente también agregar lo siguiente a csproj, ya que veo que VS agrega en algunos casos.

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


Me topé con este problema porque VS 2017 no descubrió las pruebas unitarias de MSTest en .NET Core.

La salida de Pruebas solo informó que había descubierto cero pruebas.

Al ejecutar dotnet test MyProject.csproj -t en un símbolo del sistema, se recomienda que no tenga instalado el tiempo de ejecución .NET Core correcto para que coincida con RuntimeFrameworkVersion del proyecto.

La instalación de la última actualización de VS 2017 y el tiempo de ejecución de .NET Core resolvieron el problema.


Puede deberse a una configuración de proyecto inconsistente para la arquitectura del procesador. El objetivo del proyecto de prueba debe coincidir con la arquitectura de procesador predeterminada de la prueba.

Compruebe https://.com/a/47454276/2700303


También asegúrese de no tener versiones de PackageReference combinadas en los archivos * .csproj cuando tenga varios proyectos de prueba y el mismo directorio de salida, y también actualice los paquetes del proyecto de prueba, especialmente MSTest.TestAdapter así como MSTest.TestFramework


También tuve este problema y se solucionó asegurándome de que mi proyecto y proyecto de prueba tenían la misma versión de marco de destino en el archivo .csproj

<TargetFramework>netcoreapp1.0</TargetFramework>


Tuve el mismo problema después de la migración de project.json a csproj . Y lo resolvió eliminando el net451 destino net451 y dejando solo netcoreapp1.1 . Ahora funciona perfectamente y descubrir cada vez.

Por supuesto, si necesita muchos objetivos de marco no debería hacerlo, simplemente use CLI para probarlos ...


Tuve el mismo problema. Lo resolví instalando el paquete "Microsoft.NET.Test.Sdk" de nuget.