2011-09-09 9 views
6

zauważyłem tam atrybut Microsoft.VisualStudio.TestTools.UnitTesting.WorkItemAttribute dostępny w testowaniu Visual Studio (używam VS 2010 szt Premium i pracować z TFS 2010)Użyj do WorkItemAttribute?

Znakowanie metodę testową z numerem pozycji pracy Brzmi przydatny, ale czy rzeczywiście coś robi? Nie mogę stwierdzić, czy w ogóle istnieje wsparcie dla tego narzędzia. Ustawić na prowadzenie takiego:

[WorkItem(25788)] 
[TestMethod] 
public void TestSomethingSpecificToABug() 
{ 
    ... 

ale bez magii - Pomyślałem, że menu kontekstowe na teście w oknie Wyniki badań mogą zaoferować, aby otworzyć element pracy lub zespołu Explorer może mieć funkcję wyszukiwania dla testy. Numer MSDN documentation również nie jest pomocny. Do czego służy ten atrybut?

Odpowiedz

3

Według "Software Testing with Visual Studio® 2010" przez Jeff Levinson (Addison-Wesley Professional lutego 2011, ISBN-10: 0-321-73448-3):

Oznacza to również, że jeden istniejący obiekt nie powinien być stosowany już: Powiązane elementy pracy. Ta wartość nie jest zgłaszana do magazynu danych i dlatego nie może być używana do raportowania. Jeśli obecnie korzystasz z tej właściwości, rozważ powiązanie testu z faktycznym typem pozycji pracy Sprawa: .

Więc odpowiedź jest, nie należy używać tego z TFS 2010.

1

Jest to połączenie testu urządzenia z elementem roboczym w systemie TFS. Podaję link do więcej informacji, ale wygląda na to, że jest źle udokumentowany.

Nie wykorzystałem go sam, ale sądzę, że można go wykorzystać do generowania raportów na temat statusu elementów pracy.

3

atrybutu WorkItem Metoda testowa nie jest używany przez skojarzenie metod badawczych do badania przypadków. Zazwyczaj używa się go do powiązania metody testowej z błędem. A related C# przykład od Code Index - How to discover ignored tests:

Podczas korzystania MSTest budować swój zestaw testów jednostkowych, można użyć atrybutu [Ignore] powiedzieć silnik MSTest nie uruchomić test zamiast komentowania go. Można również użyć atrybutu [WorkItem (id)], aby linku badanej jednostki do bazy danych błędów (takich jak TFS) elementu, tak aby można było prześledzić dlaczego dany test został oznaczony jako ignorowane:

[Ignore] 
    [WorkItem(12345)] // bug 12345 describes why this test was ignored 
    [TestMethod] 
    public void IgnoredButWithWorkItemTest() 
    { 
     //The actual code is not important; 
    } 
0

Naprawdę pamiętam, że użyłem tego Atrybutu przedtem, a wyniki testu zostały dołączone do odpowiedniego WorkItem.

Jednak w Visual Studio 2012 już nie działa lub zapomniałem, który mechanizm był odpowiedzialny za magię. Czy to możliwe, że działa to tylko poprzez serwer kompilacji?

1

Ten isnt już potrzebne: w VS 2013 poprzez CodeLens

Znajdź połączonych elementów roboczych (Alt + 7)

enter image description here

Znajdź związanych opinie Code (Alt + 8)

enter image description here

Znajdź związane błędy (Alt + 9)

enter image description here

recenzję definicję testu jest, kliknij dwukrotnie test.

enter image description here

Oh! dla tych, którzy cenią Lync:

Kontakt właściciel elementu (Shift + F10)

enter image description here

0

Ciągnięcie atrybuty z binarnym testowym jest naprawdę przydatna, gdy masz uprząż home grown testy wbudowane do uruchamiania testów jednostkowych Selenium UI.

Po niepowodzeniu testu mogę pobrać wartość WorkItemAttribute przy użyciu System.Reflection.MemberInfo.CustomAttributes, a następnie wyszukać identyfikator za pomocą interfejsu API TFS. Jeśli element pracy jest błędem i nadal jest aktywny, mogę automatycznie rozwiązać problem z tym błędem. W ten sposób mogę codziennie uruchamiać test awarii i automatycznie rozwiązywać problemy z redukcją randomizacji.

Powiązane problemy