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:
TestAdapter
?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.
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.
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.
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.