2012-07-19 17 views
12

W TFS 2012 mamy kilka definicji kompilacji - CI, wdrożenia i co noc.Nie uruchamiaj testów jednostek z niektórych zestawów w definicji komponentu TFS 2012

Nasze konstrukcje CI uruchamiają wszystkie (n) testy jednostkowe z naszego rozwiązania, jednak musimy je zignorować niektóre testy.

Dzieje się tak, ponieważ mamy kilka długotrwałych testów integracyjnych, a te należy uruchamiać tylko raz.

Czego próbowałem:

  • Korzystanie z TestCategoryAttribute (z MSTest) i ustawienie Test Case właściwość Filter spróbować i wykluczyć 'integracja'.
  • Korzystanie z CategoryAttribute (z NUnit) i ustawienie właściwości filtra przypadków testowych spróbuj i wykluczyć "Integracja".
  • Połączenie powyższych.

Testy, które należy zignorować, znajdują się w oddzielnych złożeniach ze słowem IntegrationTests lub Integration. Testy w nazwie.

Dzięki,
Kieron

+2

Dodałbym również testy xUnit. Jak je filtrować? –

Odpowiedz

10

używam kombinacji atrybut MSTest TestCategory na moich testów jednostkowych, a filtr kategoria testowa ustawienie mojej definicji procesu kompilacji w TFS 2012.

Według do artykułu Microsoft MSDN znaleźć heremożna określić, które kategorie użyć ustawiając filtr testową do

TestCategory=CategoryName 

Według oryginalnego postu, trzeba by użyć następującego filtru:

TestCategory!=Integration 

i ozdobić swoje testy z tego atrybutu:

[TestCategory("Integration")] 

Czyńcie to na wszystkich testów jednostkowych które chcesz zignorować podczas kompilacji. Listy testowe zostały wycofane w Visual Studio, a konwersja wszystkiego na kategorie zajęło trochę czasu, ale na koniec warto.

Nadzieję, że pomaga!

+0

Nie wymieniają tego w żadnym miejscu w dokumentacji, ale ta składnia działa dla ANDS TestCategory! = External & TestCategory! = UITest – felickz

+2

To jest dobre dla MSTestów, ale co z testami NUnit? I osobiście interesuje mnie również filtrowanie testowe xUnit, mamy wszystkie trzy rodzaje. –

+1

Będę drugi xUnit ...! – Kieron