wake-up-neo.com

Was ist der Unterschied zwischen MSTest.TestAdapter und MSTest.TestFramework und wann benötige ich welches?

Was ist eigentlich der Unterschied zwischen MSTest.TestAdapter und MSTest.TestFramework und wann brauche ich welchen?

In den NuGet-Beschreibungen können Sie lesen:

MSTest.TestAdapter

Der Adapter zum Erkennen und Ausführen von MSTest Framework-basierten Tests.

MSTest.TestFramework

Dies ist MSTest V2, die Weiterentwicklung von Microsoft Test Framework. + Um Tests zu ermitteln und auszuführen, installieren Sie MSTest.TestAdapter.


Nun, nicht sehr hilfreich und ich installiere immer beides, weil ich nie sicher bin, welches ich nehmen soll. Seltsamerweise habe ich in einem meiner Testprojekte nur den MSTest.TestFramework (ich schätze mal aus Versehen) und ReSharper kann noch Tests entdecken.

Meine Fragen zu diesen Paketen sind:

  • Müssen Sie wirklich immer beide installieren?
  • Warum funktioniert es auch ohne TestAdapter?
  • Was kann ich mit TestFramework tun? Wann würde ich das brauchen?

Die Projektseite auf GitHub hilft auch sehr. Der einzige Link

Lesen Sie mehr über MSTest V2 hier .

navigiert zu einer Seite, auf der nur angegeben wird, wie groß und Open-Source sie ist, aber keines der beiden Pakete.

8
t3chb0t

Daher verwendet Visual Studio ein Framework namens Visual Studio Test Platform, um Testadapter zu laden.

https://github.com/Microsoft/vstest

Um Testfälle zu ermitteln oder auszuführen, ruft VSTest die Testadapter basierend auf Ihrer Projektkonfiguration auf. (Aus diesem Grund bitten Sie NUnit/xUnit/MSTest alle, ein Testadapter-NuGet-Paket für Ihre Gerätetestprojekte zu installieren.) Daher existiert MSTest.TestAdapter für diese Zwecke.

MSTest.TestFramework selbst implementiert die Testframeworks und deren Verträge. Sie müssen also eine NuGet-Referenz hinzufügen, um Unit-Testfälle schreiben und kompilieren zu lassen. Nur zusammen mit dem Testadapter kompilierte Projekte können dann von Visual Studio verwendet werden.

Die endgültige Antwort auf Ihre Frage wäre also "Sie brauchen normalerweise beides". 

Die andere Antwort von @Nkosi kann natürlich richtig sein, wenn Sie nicht beabsichtigen, Visual Studio zu verwenden. MSTest verfügt über einen eigenen Befehlszeilen-Runner, mit dem Sie Ihr Gerätetestprojekt ohne den Testadapter ausführen können.

9
Lex Li

Müssen Sie wirklich immer beide installieren? 

Nein. Warum? (Siehe unten)

Warum funktioniert es auch ohne den TestAdapter?

Es gibt andere Adapter/Läufer, die das MSTest-Framework erkennen und auch MSTest-Framework-Tests erkennen und ausführen können.

Was kann ich mit dem TestFramework tun? 

Im Allgemeinen wird ein Test-Framework verwendet, um Ihre Tests zu erstellen/zu erstellen, während Adapter/Läufer erkannte Tests entdecken und ausführen. 

Wann würde ich das brauchen?

Es gibt mehrere Frameworks und Adapter/Läufer, und Sie verwenden eines Ihrer Wahl.

2
Nkosi

MsTest.TestFramework enthält das Kernframework, das Attribute und Asserts enthält. Mit MsTest.TestAdapter können wir die auf MsTest basierenden Tests erkennen und ausführen. Beispielsweise die mit [TestMethod] bezeichneten Methoden identifizieren und ausführen.

0
Ravishankar S