2013-10-23 28 views
5

Ich habe vor kurzem Visual Studio 2013 installiert und CodeLens ist erstaunlich! Das Problem, das ich finde, ist, dass, wenn ich eine Klassendatei öffne, die Methoden enthält, scheint es nicht die Unittests zu finden, die mit der Methode verbunden sind, wenn es nicht in MSTest geschrieben wird. Gibt es irgendetwas, was ich tun muss, damit es andere Komponententests wie MSpec finden kann?CodeLens findet nur Tests, die in MSTests geschrieben werden

enter image description here

Ist es, weil Maschine Spezifikationen einen anderen Ansatz hat, wenn vs MSTest oder andere Test-Framework Unit-Tests zu schaffen da draußen?

+0

getestet von und Teststatusindikatoren erfordern, dass die Methoden erkannt werden (sodass ein Verweisindikator angezeigt wird) und mit dem Test-Explorer übereinstimmen. integriert MSpec in den Test Explorer? –

+0

Ich glaube nicht, es sei denn, ich verwende einen MSpec-Testadapter, damit er in den Test Explorer integriert wird. –

Antwort

3

Die getesteten und getesteten Statusindikatoren werden vom Test Explorer bereitgestellt.

Wenn also Ihre MSpec-Tests im Test Explorer angezeigt werden und in C# oder VB geschrieben sind, sollten sie auch in CodeLens angezeigt werden.

(gleiche Antwort wie Visual Studio 2013 feature Code Lens with NUnit)

Ich habe es nur mit NUnit auf einer sauberen Maschine von Nunit und die Nunit Erweiterung in Extension Manager installieren. Hier zeigt Main einen Referenz- und einen Durchgangstest, und der Test selbst zeigt das Häkchen nach erfolgreichem Ablauf.

enter image description here

+0

Das ist jedoch nicht wahr. Wenn Testadapter für andere Testframeworks installiert werden, werden andere Testframeworks im Test Explorer angezeigt. CodeLens zeigt jedoch nicht die Referenzen –

+0

hinzugefügtes Bild und aktualisierte Details. Haben Sie einen speziellen Fall, in dem es nicht funktioniert? Ich habe Mspec nie gesehen, wenn der Quellcode nicht C# oder VB ist, dann wird es nicht funktionieren, da Codelens derzeit nur auf Vb und C# Quelle funktioniert. –

1

ich das gleiche tat, die John Gardner in seiner Antwort zeigte, ohne dass ich ihn in zwei Projekte aufgeteilt (zu imitieren die aufgestellt, dass ich mit in meine wirkliche Lösung arbeitete). Am Anfang hat es nicht funktioniert, obwohl ich die Tests im Test Explorer sehen konnte. Nach ein wenig Suchen stolperte ich über die richtige Antwort für meine Situation.

Es stellt sich heraus, dass Sie benötigen, um:

(1) Erstellen Sie eine neue Unit-Test-Projekt (kein Klassenbibliothek)

(2) In NUnit Bezug auf die Unit-Test-Projekt (I verwendet NuGet) und in VS2013 den NUnit Test Adapter installiert hat

(3) Ihre Tests zu diesem neuen Projekt verschieben

(4) Sobald Sie speichern und bauen, jetzt können Sie Ihren Produktionscode zurück gehen und sehen die " x/y passing "Nachricht und sehen Sie die Unit Tests im Test Expl orer Fenster.

Die meisten von uns, die NUnit schon lange verwenden, werden zum Erstellen von Klassenbibliotheken für unseren Code anstelle von Unit Test Projects verwendet. Es wäre schön, wenn die CodeLens-Dokumentation dies direkt abdecken würde (die Dokumentation sagt "Teststatusindikatoren erscheinen automatisch in Testprojekten", was mein Schlüssel war).