Saltar al contenido

Ejecutar pruebas de NUnit en .NET Core

Solución:

Actualización 4: Se ha lanzado NUnit3TestAdapter v3.8, por lo que ya no es alfa.

Actualización 3:
Con NUnit3TestAdapter v3.8.0-alpha1 ahora es posible ejecutar las pruebas usando dotnet test mando. Solo necesita tener estas dependencias en su proyecto de prueba:

<PackageReference Include="nunit" Version="3.7.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.8.0-*" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.*" />

¡Puedes probarlo!

Actualización 2: Visual Studio 2017 y el cambio de project.json para csproj el hecho dotnet-test-nunit adaptador de prueba obsoleto, por lo que necesitábamos lanzar otro adaptador actualizado para ejecutar pruebas de .NET Core. Consulte Probar .NET Core con NUnit en Visual Studio 2017 si está usando VS2017 y las nuevas herramientas de .NET Core. Consulte la actualización a continuación si está utilizando project.json.

Actualizar: NUnit ahora tiene soporte para dotnet test, por lo que ya no tiene que usar NUnitLite. Consulte probar .NET Core RC2 y ASP.NET Core RC2 con NUnit 3.


La consola NUnit (y el motor NUnit subyacente) aún no admiten la ejecución de pruebas unitarias en .NET core. Con suerte, obtendremos ese soporte en NUnit 3.4.

Mientras tanto, puede usar NUnitLite para cambiar sus pruebas a un corredor de prueba autoejecutable.

Escribí una publicación de blog sobre el proceso en Testing .NET Core usando NUnit 3. Un resumen rápido es;

  1. Cree una aplicación de consola .NET Core para su proyecto de prueba.
  2. Consulte NUnit y NUnitLite de su proyecto de prueba. No necesitas el corredor.
  3. Modificar main() para ejecutar las pruebas unitarias.

Debe tener un aspecto como este;

using NUnitLite;
using System;
using System.Reflection;

namespace MyDnxProject.Test
{
  public class Program
  {
    public int Main(string[] args)
    {
      var writter = new ExtendedTextWrapper(Console.Out);
      new AutoRun(typeof(Program).GetTypeInfo().Assembly).Execute(args, writter, Console.In);
    }
  }
}

Para obtener información más completa, consulte la publicación de mi blog.

Hice lo que sugirió Rob-Prouse, con cambios menores. Finalmente funciona ahora.

using System;
using System.Reflection;
using NUnitLite;
using NUnit.Common;

........

public class Program
{
    public static void Main(string[] args)
    {

        var writter = new ExtendedTextWrapper(Console.Out);
         new AutoRun(typeof(Program).GetTypeInfo().Assembly).Execute(args, writter, Console.In);

    }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *