Wie führe ich NUnit-Tests in Visual Studio 2017 aus?


167

Ich habe gerade VS 2017 installiert. Ich habe ein Projekt mit NUnit für die Testfälle. Ctrl+ R- Tführt die Tests nicht mehr aus und der Test Explorer findet keine Testfälle mehr, die mit dem TestCase-Attribut markiert sind.

Gibt es eine Möglichkeit, NUnit zum Laufen zu bringen, oder ein Update, das ich finden könnte? Ich habe NUnit vom Nuget Package Manager auf die neueste Version ohne Verbesserung neu installiert.


Das war's. Ich musste den NUnitTestAdapter neu installieren. Können Sie das als Lösung einreichen?

2
Sie haben NUnit bereits installiert, oder? Jetzt müssen Sie NUnit3TestAdapter installieren, um NUnit-Tests in VS 2017 auszuführen.
Ripon Al Wasim

Warum ist dies auch mit 2019 gekennzeichnet?
UuDdLrLrSs

Antworten:


207

Fügen Sie Ihren Testprojekten das NUnit-Testadapter-NuGet-Paket hinzu

Oder installieren Sie die Visual Studio-Erweiterung Test Adapter. Es gibt eine für

Ich bevorzuge das NuGet-Paket, da es mit der von Ihrem Projekt verwendeten NUnit-Version synchronisiert ist und daher automatisch mit der in jedem Build-Server verwendeten Version übereinstimmt.


2
Perfecto !! Arbeitete an meinem mit VS 2017. Wenn Test Adapter 2.0 installiert ist, sollte es übereinstimmen -> Update Nuget Paket NUnit 2.xx Version. Wenn Test Adapter 3.0 -> Nuget-Paket auf 3.xx aktualisieren Vielen Dank @jessehouwing
Anand Gangadhara

17
Stellen Sie außerdem sicher, dass Sie auf Microsoft.NET.Test.Sdk verwiesen haben , zumindest wenn Sie auf .NET Core abzielen. Ich habe übersehen, dass mir diese Referenz fehlte.
Dan Jagnow

5
Ich war einige Zeit damit beschäftigt, da keine der Lösungen funktionierte. Dann habe ich aus dieser Zeile herausgefunden, dass eine Klassenbibliothek mit dem Ziel ".NET Standard" nicht funktioniert. Das Testprojekt muss auf .NET Core abzielen. Außerdem ist Microsoft.NET.Test.SdkNuGet erforderlich.
Arghya C

3
Erwähnenswert ist, dass ein weiterer guter Grund für die Wahl des NuGet-Pakets für den NUnit-Testadapter darin besteht, dass Ihre Kollegen keine VS-Erweiterungen installieren müssen. Und Ihr Build-Server benötigt auch keine zusätzlichen Raten.
Jim Aho

1
Ich habe beide installiert, aber es ist nicht offensichtlich, wie diese Tests ausgeführt werden sollen. schaute auf Ansicht / andere Fenster, kann aber den Nunit-Test-Explorer nicht finden
Sonic Soul

37

Sie müssen NUnitTestAdapter installieren. Die neueste Version von NUnit ist 3.xy (3.6.1) und Sie sollten NUnit3TestAdapter zusammen mit NUnit 3.xy installieren

Führen Sie die folgenden Schritte aus, um NUnit3TestAdapter in Visual Studio 2017 zu installieren:

  1. Klicken Sie mit der rechten Maustaste auf Projekt -> Klicken Sie im Kontextmenü auf "Nuget-Pakete verwalten"
  2. Gehen Sie zur Registerkarte Durchsuchen und suchen Sie nach NUnit
  3. Wählen Sie NUnit3TestAdapter -> Klicken Sie rechts auf Installieren -> Klicken Sie im Popup-Fenster Vorschau auf OK Geben Sie hier die Bildbeschreibung ein

Sie können "NuGet Package Manager" auch über das Menü "Projekt" von VS öffnen.
Ripon Al Wasim

26

Dieser hat mir geholfen: https://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2015/07/27/getting-started-with-net-unit-testing-using-nunit.aspx

Grundsätzlich:

  • Fügen Sie die NUnit 3-Bibliothek in Nuget hinzu.
  • Erstellen Sie die Klasse, die Sie testen möchten.
  • Erstellen Sie eine separate Testklasse, über der sich [TestFixture] befinden sollte.
  • Erstellen Sie eine Funktion in der Testklasse, über der [Test] stehen sollte.
  • Gehen Sie dann zu TEST / WINDOW / TEST EXPLORER (oben).
  • Klicken Sie auf der linken Seite auf Ausführen, um zu erfahren, was passiert ist und was nicht.

Mein Beispielcode ist hier:

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

Dies gibt true zurück, wenn Sie den Parameter in Is.EqualTo ändern. Dies schlägt fehl usw.


nichts wird gefunden, wenn ich test / windows / test explorer
mache

Strg-Alt-Delor Dies ist Test / TestExplorer in Visual Studio 2019, dies war möglicherweise eine subtile Änderung, die Microsoft kürzlich vorgenommen hat.
Lee

11

Sie müssen 3 NuGet-Pakete installieren:

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

Viel Spaß beim Schreiben von Unit-Tests!


8
  • Sie müssen die Prozessorarchitektur von Unit-Tests in VS auswählen:
    Test > Test Settings > Default processor architecture

  • Der Testadapter muss geöffnet sein, um die Tests anzeigen zu können: (VisualStudio, z.
    Test->Windows->Test Explorer


Zusätzliche Informationen, was los ist, können Sie unter 'VS-Output-Window' berücksichtigen und Dropdown-Menü 'Show output from' auswählen und 'Tests' einstellen.


Es ist eine sehr wichtige Antwort. Vielen Dank. Stellen Sie das richtige Problem mit der "Standardprozessorarchitektur" ein.
Nikita Danilov

1

Mit der CLI ist das Erstellen eines funktionierenden NUnit-Projekts sehr einfach. Die Vorlage erledigt alles für Sie.

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

Unter .NET Core ist dies definitiv mein bevorzugter Weg.


0

Um den Test in Visual Studio 2017 auszuführen oder zu debuggen, müssen wir "NUnit3TestAdapter" installieren. Wir können es in jedem VS installieren, aber es funktioniert ordnungsgemäß in der VS "Community" -Version. Um dies zu installieren, können Sie über Nuget Package hinzufügen.


0

Für alle, die Probleme mit Visual Studio 2019 haben:

Ich musste zuerst Test> Windows> Test Explorer öffnen und die Tests von dort aus ausführen, bevor die Option zum Ausführen / Debuggen von Tests im Kontextmenü angezeigt wurde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.