Nunit: Impossible de charger le fichier ou l'assembly 'nunit.framework'

Créé le 14 févr. 2018  ·  12Commentaires  ·  Source: nunit/nunit

Bonjour, j'ai créé un nouveau projet avec dotnet nunit et je reçois cette erreur lorsque j'essaie d'exécuter mes tests via Unit.ConsoleRunner.3.8.0 .

Dotnet SDK version 2.1.4

Exemple de référentiel affichant l'erreur : https://github.com/VictorioBerra/nunit3-errors

Exécutez ./build.ps1 pour exécuter le fichier cake. Une fois cela fait, il téléchargera Unit.ConsoleRunner.3.8.0 à partir de NuGet. Donc, après avoir exécuté cela ou téléchargé le package nuget, vous pouvez ignorer l'activité des gâteaux et l'exécuter simplement dans PowerShell si vous le souhaitez :

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

question

Commentaire le plus utile

Je suis d'accord sur le fait qu'il est dommage que nous n'ayons pas encore de NUnit.Console entièrement fonctionnel sur .NET Core 2.0. Une fois que j'ai terminé mes relations publiques actuelles, je vais dans cette direction si personne ne me bat.

Tous les 12 commentaires

En effet, contrairement aux projets .NET Framework, les projets .NET Core n'ont pas leurs dépendances telles que nunit.framework.dll copiées dans le dossier bin\{configuration}\{tfm} lors de la génération. Vous devez exécuter dotnet publish . Pour Cake, c'est DotNetCorePublish ou voyez ce que fait NUnit . Ensuite , vous exécutez des tests sur les ensembles de bin\{configuration}\{tfm}\publish qui ne contient dépendances.

dotnet test effectue toute cette publication pour vous avant de transmettre le chemin \publish à dotnet vstest .
dotnet vstest et NUnit Console fonctionnent tous deux sur des assemblys, pas sur des projets, et vous obligent donc à publier d'abord comme vous le feriez si vous écriviez des tests auto-exécutables.

Ahhhhhh c'est vraiment instructif et utile merci beaucoup. Si vous regardez l'exemple sur cake, ils montrent clairement la navigation vers le répertoire bin pour exécuter les tests : https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496

Espérons que tous ceux qui tomberont sur cela verront cela et gagneront du temps.

Avant d'aller trop vite : NUnit.ConsoleRunner ne s'exécute pas encore sur .NET Core. NUnitLite le fait, bien que ce soit le moyen le plus simple d'exécuter des tests NUnit : https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

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

@jnm2 votre exemple produit-il des résultats de test ? Depuis le wiki que tu as posté :

dotnet test ne prend actuellement pas en charge la transmission d'options de ligne de commande à l'adaptateur de test, donc NUnit ne peut pas encore produire TestResults.xml.

C'était l'état des choses la dernière fois que j'ai regardé:

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

Je suis d'accord sur le fait qu'il est dommage que nous n'ayons pas encore de NUnit.Console entièrement fonctionnel sur .NET Core 2.0. Une fois que j'ai terminé mes relations publiques actuelles, je vais dans cette direction si personne ne me bat.

Salut, des nouvelles à ce sujet ?

@orihomie Ceci est un problème clos. Nous avons l'intention d'en poser une autre ?

@CharliePoole Non, je viens de rencontrer ce problème sur mon plan de build en essayant de lancer des tests .netcore par *\NUnit.Console-3.6.1\nnit3-console.exe et j'ai obtenu une exception qui m'a conduit ici

@orihomie Vous ne pouvez pas encore utiliser la console pour .NET Core, mais vous pouvez utiliser dotnet test .

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

@orihomie Pour le suivi de la question de l'exécution des tests .Net Core via la console, gardez un œil sur nunit/nunit-console#478

Cette page vous a été utile?
0 / 5 - 0 notes