Nunit: Datei oder Assembly 'nunit.framework' konnte nicht geladen werden

Erstellt am 14. Feb. 2018  ·  12Kommentare  ·  Quelle: nunit/nunit

Hallo, ich habe ein neues Projekt mit dotnet nunit und erhalte diesen Fehler, wenn ich versuche, meine Tests über Unit.ConsoleRunner.3.8.0 auszuführen.

Dotnet-SDK-Version 2.1.4

Beispiel-Repository mit Fehler: https://github.com/VictorioBerra/nunit3-errors

Führen Sie ./build.ps1 aus, um die Kuchendatei auszuführen. Sobald Sie dies tun, wird Unit.ConsoleRunner.3.8.0 von NuGet heruntergeladen. Nachdem Sie das ausgeführt oder das Nuget-Paket heruntergeladen haben, können Sie das Kuchengeschäft überspringen und dies einfach in PowerShell ausführen, wenn Sie möchten:

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

question

Hilfreichster Kommentar

Ich stimme übrigens zu, dass es schade ist, dass wir noch keine voll funktionsfähige NUnit.Console auf .NET Core 2.0 haben. Sobald ich meine aktuellen PRs beendet habe, gehe ich in diese Richtung, wenn mich niemand übertrifft.

Alle 12 Kommentare

Dies liegt daran, dass im Gegensatz zu .NET Framework-Projekten bei .NET Core-Projekten ihre Abhängigkeiten wie nunit.framework.dll beim Build nicht in den Ordner bin\{configuration}\{tfm} kopiert werden. Sie müssen dotnet publish ausführen. Für Cake ist das DotNetCorePublish oder sehen Sie, was NUnit macht . Dann führen Sie Tests auf den Baugruppen in bin\{configuration}\{tfm}\publish , die Abhängigkeiten enthält.

dotnet test erledigt all diese Veröffentlichungen für Sie, bevor der Pfad \publish an dotnet vstest .
Sowohl dotnet vstest als auch NUnit Console arbeiten mit Assemblies, nicht mit Projekten, und erfordern daher, dass Sie zuerst veröffentlichen, genau wie Sie es beim Schreiben von selbstausführenden Tests tun würden.

Ahhhhhh das ist wirklich aufschlussreich und hilfreich vielen Dank. Wenn Sie sich das Beispiel bei Cake ansehen, zeigen sie deutlich die Navigation zum bin-Verzeichnis, um die Tests auszuführen: https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496

Hoffentlich wird jeder andere, der darauf stößt, dies sehen und etwas Zeit sparen.

Bevor ich zu schnell gehe: NUnit.ConsoleRunner läuft noch nicht auf .NET Core. NUnitLite tut dies, obwohl dies der einfachste Weg ist, NUnit-Tests auszuführen: https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

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

@jnm2 liefert Ihr Beispiel Testergebnisse? Aus dem von dir geposteten Wiki:

dotnet test unterstützt derzeit keine Übergabe von Befehlszeilenoptionen an den Testadapter, daher kann NUnit noch keine TestResults.xml erstellen.

Dies war der Stand der Dinge, als ich das letzte Mal nachgesehen habe:

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);
    }
}

Ich stimme übrigens zu, dass es schade ist, dass wir noch keine voll funktionsfähige NUnit.Console auf .NET Core 2.0 haben. Sobald ich meine aktuellen PRs beendet habe, gehe ich in diese Richtung, wenn mich niemand übertrifft.

Hallo, irgendwelche Updates dazu?

https://github.com/nunit/nunit-console/issues/475 ist der Thread, dem Sie folgen müssen.

@orihomie Dies ist ein geschlossenes Problem. Wollen Sie nach einem anderen fragen?

@CharliePoole Nein, ich bin gerade auf dieses Problem in meinem Build-Plan gestoßen, als ich versucht habe, .netcore-Tests von *\NUnit.Console-3.6.1\nunit3-console.exe zu starten, und habe eine Ausnahme erhalten, die mich hierher führt

@orihomie Sie können die Konsole für .NET Core noch nicht verwenden, aber Sie können 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 Behalten Sie nunit/nunit-console#478 im Auge, um das Problem der Ausführung von .Net Core-Tests über die Konsole zu verfolgen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen