Nunit: No se pudo cargar el archivo o ensamblaje 'nunit.framework'

Creado en 14 feb. 2018  ·  12Comentarios  ·  Fuente: nunit/nunit

Hola, creé un nuevo proyecto con dotnet nunit y recibo este error cuando intento ejecutar mis pruebas a través de Unit.ConsoleRunner.3.8.0.

Dotnet SDK versión 2.1.4

Repositorio de muestra que muestra el error: https://github.com/VictorioBerra/nunit3-errors

Ejecute ./build.ps1 para ejecutar el archivo de pastel. Una vez que lo haga, descargará Unit.ConsoleRunner.3.8.0 de NuGet. Entonces, después de ejecutar eso o descargar el paquete nuget, puede omitir el negocio de la torta y simplemente ejecutar esto en PowerShell si lo desea:

.\tools\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\tests\Demo.Tests\bin\Release\netcoreapp2.0\Demo.Tests.dll

question

Comentario más útil

Por cierto, estoy de acuerdo en que es una pena que no tengamos una NUnit.Console completamente funcional en .NET Core 2.0 todavía. Una vez que termine mis relaciones públicas actuales, me dirijo hacia allí si nadie se me adelanta.

Todos 12 comentarios

Esto se debe a que, a diferencia de los proyectos de .NET Framework, los proyectos de .NET Core no tienen sus dependencias, como nunit.framework.dll, copiadas en la carpeta bin\{configuration}\{tfm} en la compilación. Necesita ejecutar dotnet publish . Para Cake, eso es DotNetCorePublish o mira lo que hace NUnit . A continuación, se ejecutan pruebas en las asambleas en bin\{configuration}\{tfm}\publish , que contiene las dependencias.

dotnet test hace toda esta publicación antes de pasar la ruta \publish a dotnet vstest .
Tanto dotnet vstest como NUnit Console operan en ensamblados, no en proyectos y, por lo tanto, requieren que publique primero tal como lo haría si estuviera escribiendo pruebas autoejecutables.

Ahhhhhh esto es realmente esclarecedor y útil, muchas gracias. Si observa el ejemplo de cake, muestran claramente cómo navegar al directorio bin para ejecutar las pruebas: https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496

Con suerte, cualquier otra persona que se encuentre con esto verá esto y ahorrará algo de tiempo.

Antes de ir demasiado rápido: NUnit.ConsoleRunner aún no se ejecuta en .NET Core. NUnitLite lo hace, aunque esta es la forma más fácil de ejecutar pruebas NUnit: https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

Ejemplo: https://github.com/jnm2/ApiContractGenerator/blob/aa3c085fdb9c978b252b630187325d6eeb504235/build.cake#L21 -L25

@ jnm2 ¿su ejemplo produce resultados de prueba? De la wiki que publicaste:

dotnet test no admite actualmente pasar opciones de línea de comando al adaptador de prueba, por lo que NUnit no puede generar TestResults.xml todavía.

Este fue el estado de cosas la última vez que miré:

https://github.com/jnm2/Cake.SqlServer/blob/ed6093e268114ef640851414e64aabec49d284e8/build.cake#L114 -L134

try
{
    DotNetCoreTest("src/Tests/Tests.csproj", new DotNetCoreTestSettings
    {
        Configuration = configuration,
        NoBuild = true,
        Logger = "trx",
        ArgumentCustomization = a => a.AppendSwitchQuoted("--results-directory", tempDirectory)
    });
}
finally
{
    if (parameters.IsRunningOnAppVeyor)
    {
        // dotnet test cannot do more than one target framework per TRX file
        // AppVeyor seems to ignore all but the first TRX upload– perhaps because the test names are identical
        // https://github.com/Microsoft/vstest/issues/880#issuecomment-341912021
        foreach (var testResultsFile in GetFiles(tempDirectory + "/**/*.trx"))
            AppVeyor.UploadTestResults(testResultsFile, AppVeyorTestResultsType.MSTest);
    }
}

Por cierto, estoy de acuerdo en que es una pena que no tengamos una NUnit.Console completamente funcional en .NET Core 2.0 todavía. Una vez que termine mis relaciones públicas actuales, me dirijo hacia allí si nadie se me adelanta.

Hola, ¿alguna actualización sobre esto?

@orihomie Este es un tema cerrado. ¿Pretendemos preguntar por uno diferente?

@CharliePoole No, acabo de encontrar este problema en mi plan de compilación cuando intenté iniciar las pruebas .netcore con * \ NUnit.Console-3.6.1 \ nunit3-console.exe y obtuve una excepción que me llevó justo aquí

@orihomie No puede usar la consola para .NET Core todavía, pero puede usar dotnet test .

https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit

@orihomie Para

¿Fue útil esta página
0 / 5 - 0 calificaciones