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
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 ?
https://github.com/nuni/nunit-console/issues/475 est le fil à suivre.
@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
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.