Comment exécuter des tests NUnit dans Visual Studio 2017?


167

Je viens d'installer VS 2017. J'ai un projet utilisant NUnit pour les cas de test. Ctrl+ R- Tn'exécute plus les tests et l'explorateur de tests ne trouve plus de cas de test marqués avec l'attribut TestCase.

Existe-t-il encore un moyen de faire fonctionner NUnit ou une mise à jour que je pourrais trouver? J'ai réinstallé NUnit du gestionnaire de packages Nuget vers la dernière version sans amélioration.


C'était ça. J'avais besoin de réinstaller le NUnitTestAdapter. Pouvez-vous proposer cela comme solution?

2
Vous avez déjà installé NUnit, non? Vous devez maintenant installer NUnit3TestAdapter pour exécuter les tests NUnit dans VS 2017.
Ripon Al Wasim

Pourquoi est-ce également étiqueté 2019?
UuDdLrLrSs

Réponses:


207

Ajouter le package NuGet de l'adaptateur de test NUnit à vos projets de test

Ou installez l'extension de studio visuel de l'adaptateur de test. Il y en a un pour

Je préfère le package NuGet car il sera synchronisé avec la version NUnit utilisée par votre projet et correspondra donc automatiquement à la version utilisée dans n'importe quel serveur de build.


2
Perfecto !! J'ai travaillé sur le mien avec VS 2017. Si l'adaptateur de test 2.0 est installé, il doit correspondre à -> mettre à jour la version 2.xx du package Nuget. Si Test Adapter 3.0 -> mettre à jour le paquet nuget vers 3.xx Merci @jessehouwing
Anand Gangadhara

17
Assurez-vous également que vous avez référencé Microsoft.NET.Test.Sdk , au moins si vous ciblez .NET Core. J'ai oublié que je manquais cette référence.
Dan Jagnow

5
J'ai été coincé avec cela pendant un certain temps, car aucune des solutions n'a fonctionné. Ensuite, j'ai compris à partir de cette ligne qu'une bibliothèque de classes avec la cible ".NET Standard" ne fonctionne pas. Le projet de test doit cibler .NET Core. De plus, Microsoft.NET.Test.SdkNuGet est requis.
Arghya C

3
Il convient de mentionner qu'une autre bonne raison de choisir le package NuGet de l'adaptateur de test NUnit est que vos collègues n'auront pas à installer d'extensions VS. Et votre serveur de build n'a pas non plus besoin de versements supplémentaires.
Jim Aho

1
J'ai installé les deux mais ce n'est pas évident comment exécuter ces tests. regardé View / other windows mais ne peut pas trouver l'explorateur de test de nunit
Sonic Soul

37

Vous devez installer NUnitTestAdapter. La dernière version de NUnit est 3.xy (3.6.1) et vous devez installer NUnit3TestAdapter avec NUnit 3.xy

Pour installer NUnit3TestAdapter dans Visual Studio 2017, procédez comme suit:

  1. Faites un clic droit sur Projet -> Cliquez sur "Gérer les packages Nuget .." dans le menu contextuel
  2. Allez dans l'onglet Parcourir et recherchez NUnit
  3. Sélectionnez NUnit3TestAdapter -> Cliquez sur Installer sur le côté droit -> Cliquez sur OK dans la fenêtre de prévisualisation entrez la description de l'image ici

Vous pouvez également ouvrir "NuGet Package Manager" à partir du menu Projet de VS.
Ripon Al Wasim

26

Celui-ci m'a aidé: https://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2015/07/27/getting-started-with-net-unit-testing-using-nunit.aspx

Fondamentalement:

  • Ajoutez la bibliothèque NUnit 3 dans Nuget.
  • Créez la classe que vous souhaitez tester.
  • Créez une classe de test séparée, celle-ci devrait avoir [TestFixture] au-dessus.
  • Créez une fonction dans la classe de test, celle-ci devrait avoir [Test] au-dessus.
  • Ensuite, allez dans TEST / WINDOW / TEST EXPLORER (en haut).
  • Cliquez sur exécuter sur le côté gauche, il vous dira ce qui s'est passé et ce qui a échoué.

Mon exemple de code est ici:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;

namespace NUnitTesting
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }

    public class Maths
    {
        public int Add(int a, int b)
        {
            int x = a + b;
            return x;   
        }
    }

    [TestFixture]
    public class TestLogging
    {
     [Test]
     public void Add()
        {
            Maths add = new Maths();
            int expectedResult = add.Add(1, 2);
            Assert.That(expectedResult, Is.EqualTo(3));
        }
    }
}

Cela retournera true, si vous modifiez le paramètre dans Is.EqualTo, cela échouera, etc.


rien n'est trouvé quand je fais test / windows / test explorer
ctrl-alt-delor

Ctrl-alt-delor c'est Test / TestExplorer dans Visual Studio 2019, cela peut avoir été un changement subtil effectué récemment par Microsoft.
Lee

11

Vous devez installer 3 packages NuGet:

  • Nunit
  • NUnit3TestAdapter
  • Microsoft.NET.Test.Sdk

Amusez-vous à écrire des tests unitaires!


8
  • Vous devez choisir l'architecture du processeur des tests unitaires dans VS:
    Test > Test Settings > Default processor architecture

  • L'adaptateur de test doit être ouvert pour voir les tests: (VisualStudio par exemple:
    Test->Windows->Test Explorer


Des informations supplémentaires que vous pouvez prendre en compte dans 'VS-Output-Window' et choisissez Drop-Down 'Show output from' et définissez 'Tests'


C'est une réponse très importante, un grand merci, régler le problème correct de «l'architecture du processeur par défaut».
Nikita Danilov

1

En utilisant la CLI, créer un projet NUnit fonctionnel est vraiment facile. Le modèle fait tout pour vous.

dotnet new -i NUnit3.DotNetNew.Template
dotnet new nunit

Sur .NET Core, c'est certainement mon chemin préféré.


0

Pour exécuter ou déboguer un test dans Visual Studio 2017, nous devons installer «NUnit3TestAdapter». Nous pouvons l'installer dans n'importe quel VS, mais il fonctionne correctement en version VS "communauté". Pour l'installer, vous pouvez ajouter via Nuget Package.


0

Pour toute personne ayant des problèmes avec Visual Studio 2019:

Je devais d'abord ouvrir Test> Windows> Test Explorer, et exécuter les tests à partir de là, avant que l'option Exécuter / Déboguer les tests n'apparaisse dans le menu contextuel.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.