2013-05-01 12 views
6

Obecnie tworzę przykładową aplikację, w której używam MS Test, aby zaimplementować oparty na scenariuszu projekt typu UnitTest typu "Given-When-Then" w VS2012. Aby to działało, mam abstrakcyjną klasę Scenariusz (podstawową), która ma wirtualne metody Given() i When() - uruchamiane podczas fazy TestInitialization. Wyniki metody When() są następnie przechowywane i można je zweryfikować za pomocą dowolnych metod TestMethod w dowolnej konkretnej klasie scenariusza, reprezentujących instrukcje "Then". Wszystko działa idealnie.MSTest: Jak zmienić nazwę TestMethod w TestExplorer?

Jest jeszcze jedna rzecz, którą chciałbym kontrolować: nazwy wszystkich metod TestMethod, które są wyświetlane w TestExplorer Visual Studio. Dzieje się tak, ponieważ wiele metod TestMethod ma takie same lub podobne nazwy, ale są one wykonywane w różnych scenariuszach (na przykład "ExpectedExceptionIsThrown"). myślałem że coś takiego będzie wspierany przez MS testy, być może przez native wsparciu TestMethodAttribute tak:

[TestMethod("DisplayName here...")] 
public void ThenThisShouldHappen() 
{ 
    ... 
} 

Szukałem poprzez API MS test, ale nie wydaje się znaleźć jakiś sposób aby to zrobić. Czy to w ogóle możliwe z testem MS?

+0

Nie widzę żadnego sposobu. Przy okazji, czy zastanawiałeś się nad użyciem rozszerzenia SpecFlow do VS, ponieważ obsługuje on natywnie opcję Given When Then i zapewnia wspaniałą obsługę edytora dla testów BDD? – kamranicus

+0

Myślenie także o tym problemie. –

+1

Masz również ten problem. Jest [DescriptionAttribute] (https://msdn.microsoft.com/library/microsoft.visualstudio.testtools.unittesting.descriptionattribute.aspx), ale z tego co wiem, nic nie robi. – talles

Odpowiedz

1

miałem problemy z tym pojęciem na chwilę się dopiero zdaję sobie sprawę, że można prawym przyciskiem myszy obszar testowy Explorer i wybierz Grupa BY -> Klasa.

To nie jest doskonałe rozwiązanie, ale w połączeniu z całą funkcjonalnością dostępną dla testowych list odtwarzania i/lub Resharpera, można nieco dostosować swój Test.