2
votes

Résolution des problèmes: les tests unitaires NUnit ne s'affichent pas dans la zone de test dans Visual Studio Community (Mac)

Malgré l'ajout de NUnit de NuGet à un projet .Net Core existant, aucun test unitaire n'est affiché dans le Test Pad.

Remarque: j'ai publié ces images sous forme de liens car j'ai une réputation trop faible pour publier images. Qu'est-ce qui se passe avec ça?

  1. Projet> Ajouter des packages NuGet ...
  2. Package NUnit sélectionné (3.11.0) et cliqué sur "Ajouter un package" li >
  3. Vérifié pour voir si ajouté à la solution
  4. Création d'un nouveau fichier de classe vide dans la solution
  5. Tests ajoutés à cette classe
  6. Aucun test n'apparaît dans la zone de test

J'ai essayé de redémarrer Visual Studio et de réinstaller le package.

J'ai également essayé de supprimer le répertoire Project / obj - toujours pas de chance.

using NUnit.Framework;
namespace ExampleLib
{
    [TestFixture]
    public class ExampleTestFixture
    {
        [Test]
        public void ExampleTest()
        {
            Assert.AreEqual(2, 2);
        }
    }
}

Attendu: les tests remplissent la zone de test unitaire Réel: tampon de test vide.


0 commentaires

3 Réponses :


1
votes

Le package NuGet vous permet uniquement d'utiliser le framework NUnit pour écrire des tests. En d'autres termes, c'est comme ajouter des références aux DLL NUnit.

Vous devez installer l ' adaptateur pour voir les tests.


5 commentaires

Ce n'est pas pour l'édition communautaire de Visual Studio (MacOS). Je ne peux même pas ouvrir ce fichier. Il indique Visual Studio 2012, 2013, 2015, 2017 dans le package.


@shua Essayez de l'installer en allant dans Outils> Extensions dans la barre de menus VS. Je ne sais pas si cette extension prend en charge MacOS, mais c'est ainsi. Si ce n'est pas le cas, vous n'avez malheureusement pas de chance et vous n'avez qu'à utiliser le cadre de test unitaire de Visual Studio.


Vous avez probablement signalé le mauvais lien, nuget.org/packages/NUnit3TestAdapter/3.12.0 < / a> L'adaptateur est un package NuGet.


@CodingYoshi Il n'y a pas d'option Outils> Extensions.


@LexLi, j'ai pu installer le NUnit3TestAdapter, mais les tests n'apparaissent toujours pas. J'ai essayé de redémarrer Visual Studio, de nettoyer à la fois le projet et la solution, et de créer entièrement une nouvelle application console. Toujours pas de chance.




2
votes

Il existe plusieurs exigences pour ce projet, afin que VS pour Mac puisse identifier et exécuter les cas de test.

  1. Le projet doit être une application console de .NET Core.
  2. Le projet doit avoir une référence de Microsoft.NET.Test.Sdk (requis par l'infrastructure VSTest).
  3. Le projet doit avoir une référence de NUnit .
  4. Le projet doit avoir une référence de NUnit3TestAdapter (requis par l'infrastructure VSTest).

Exemple,

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="NUnit" Version="3.11.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.12.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
  </ItemGroup>
</Project>

Notez que VS pour Windows et VS pour Mac (et JetBrains Rider) utilisent tous VSTest pour les tests unitaires, donc cette configuration fonctionne pour tous ces IDE.

Notez également que si vous n'avez pas créé ce projet de console à partir de dotnet new nunit , mais d'un modèle d'application de console normal, vous devez supprimer manuellement le Méthode principale .


1 commentaires

J'ai ajouté cela à un projet existant et cela m'a posé un problème sur le fait qu'il y avait plus d'un Main. Ensuite, j'ai exécuté dotnet new nunit dans le répertoire racine du projet et cela a supprimé l'erreur. Pourriez-vous ajouter cela à cette réponse? Merci beaucoup pour votre aide. Je ne sais pas pourquoi ce serait si différent entre les deux modèles.