2017-03-02 4 views
0

Ich benutze MSTest und ich finde, dass ich einige ziemlich lächerliche Testmethodennamen schreibe, damit ich eine Vorstellung davon haben kann, was läuft, wenn ich meine Testergebnisse ansehe.Organisieren von Testnamen in MSTest

Um zu verstehen, was in der Ergebnisliste des Test Explorers steht, verwende ich fast den Namen einer "namespace inclusive" -Methode. Der Strohhalm, der mir den Rücken gebrochen hat? PostImportMemberStagingBeginImportThrowsArgOutOfRangeIfImportMethodUnrecognized()

enter image description here

Notiere die GetImportReturnsImportView Methode im Bild. Ich werde diesen Namen irgendwann ändern müssen, weil er wahrscheinlich fast dupliziert wird, und er sagt mir nicht wirklich, was er testet.

Im MSTest-Fenster konnte ich nach Klasse sortieren, aber das tut nicht wirklich viel (und ich würde viel lieber nach Testprojekt sehen). Idealerweise würde es eine Art von vollständigen Baumergebnissen geben, sodass ich nach Namensraum/Testklasse bohren könnte.

Welche Testbenennungskonventionen kann ich verwenden, um etwas ziemlich Vernünftiges zu erreichen, um in den Testergebnissen schnell zu überprüfen, ohne mit Methodennamen verrückt zu werden?

ich externe Tools zu vermeiden, ist versucht (ich benutze schon OpenCover und Reportgenerator extern für Sachen Integration Ebene, so ist dies wirklich nur für die schnelle in-VS-Referenz)

+0

Versuchen Sie mit der "Gruppe von" auf dem Test-Explorer, ich mag es, nach Klasse zu gruppieren. Allerdings finde ich ReSharper's Testläufer, um die Tests viel besser zu organisieren als der eingebaute Testläufer – Kritner

+0

Oh, schau dir dein Bild nochmal an, ich nehme an, du machst das vielleicht schon: D – Kritner

Antwort

1

Sie können das TestCategory Attribut verwenden, um besser zu organisieren testet zu Modulen. Daneben finde ich Tests in Given..._When..._Then... Format zu benennen, die Körper testen entspricht sehr praktisch:

public class EditControllerTests 
{ 
    [TestMethod] 
    [TestCategory("Controller tests")] 
    public void GivenSomething_WhenSomethingHappens_ThenResultIsSomething() 
    { 
     GivenSomeData(new Data() { X = 1, Y = 2 }); 

     WhenControllerActionExecutes(editController.Index); 

     Assert.Equals(jsonResult, "..."); 
    } 
} 

Und natürlich, was am besten ist, ist MSTest zu verlassen und verwenden etwas reiferen, wie NUnit (Umwandlung von einem bis ein anderer ist leicht automatisch durchzuführen). NUnit enthält Kategorien für Klassen.

+0

Danke, wollte das aber nicht wirklich nutzen ... mache ich bereits für Integrationstests, und obwohl wir Multiples für eine Methode verwenden können, ist es eine Menge zusätzlicher Schreib- und Durcheinander für etwas, das ich hoffte, dass MSTest es selbst lösen könnte. (Wenn wir das auf eine Testklasse anwenden könnten, wäre ich viel eher dazu bereit, es dafür zu verwenden!) – jleach