2010-09-24 6 views
7

Mamy kilkaset klas testowych z kilkudziesięciu z nich oznaczone następujące atrybuty: [TestFixture] [Explicit] [Category („IntegrationTests”)] więc będą uruchamiane tylko w naszym na noc automatyczna kompilacja. Pozostałe TestFixtures nie mają określonej kategorii (i nie są oznaczone jako Explicit).Czy przy uruchamianiu NUnit i określaniu kategorii można również uwzględnić wszystkie testy niesklasyfikowane?

Oto zadanie NAnt prowadzimy wykonać nasze testy:

<nunit2> 
    <test> 
     ... 
     <categories> 
      <include name="IntegrationTests" /> 
     </categories> 
     ... 
    </test> 
</nunit2> 

To, oczywiście, nie będzie wykonywać żadnej z Uncategorized testów.

Chciałbym móc zrobić coś takiego:

<nunit2> 
    <test> 
     ... 
     <categories> 
      <include name="*" /> 
      <include name="IntegrationTests" /> 
     </categories> 
     ... 
    </test> 
</nunit2> 

gdzie wszystkie Uncategorized testów zostanie uruchomiony wraz z testów integracyjnych. czy to możliwe? Jeśli tak, jaka jest składnia?

(Uwaga: Szukam rozwiązania NAnt, jak wyżej, lub rozwiązania wiersza poleceń NUnit.Na pewno mogę uruchomić NUnit dwa razy z różnymi opcjami lub umieścić Kategorie na wszystkich moich TestFixtures. że jestem w porządku, jeśli muszę, ale byłoby fajniej móc bezpośrednio określić skategoryzowane testy.)

Odpowiedz

0

Nie, biorąc pod uwagę sytuację, nie ma sposobu, aby zrobić to, co chcesz w jednym przebiegu NUnit. Jeśli zdjąłeś wyraźny atrybut, możesz zrobić to w jednym przebiegu, wykluczając wszystkie skategoryzowane testy, których nie chcesz.

Zasadniczo, jeśli przejdziesz do kategorii, wszystkie testy powinny zostać podzielone na kategorie.

+0

Byłbym w porządku z tym, jeśli istnieje sposób, aby upewnić się, że wszystkie testy są skategoryzowane? – bacar

8

Jestem w tej samej łodzi i denerwowało się, dopóki nie odkryłem, że atrybut kategorii może być stosowany nie tylko do testu lub urządzenia testowego, ale do całego zespołu.

Mam dwa zespoły testowe z testami, które uruchamiam lokalnie, i jeszcze jeden z testami, które powinny działać tylko na serwerze kompilacji. Dodałem ten atrybut w AssemblyInfo.cs w pierwszych dwóch projektach: [assembly: NUnit.Framework.Category("Always")]. Trzeci projekt testowy wykorzystuje atrybuty kategorii, takie jak [Explicit, Category("PublicDatabase")], zgodnie z opisem. Serwer budujący wywołuje NUnit z wartością /include=Always,PublicDatabase i ma pożądany wynik: wszystkie testy w pierwszych dwóch złożeniach działają, a tylko testy PublicDatabase w trzecim uruchomionym złożeniu.

Po uruchomieniu NUnit lokalnie w pierwszych dwóch projektach, po prostu uruchamiam go na poszczególnych złożeniach i nie muszę w ogóle określać kategorii.

+0

IIUC, to nie tylko uruchomi "wszystkie testy niesklasyfikowane". Uruchomi również _all_ testy (z zestawu, który ma kategorię poziomu zespołu), w tym wszelkie testy tam, które mają kategorię explicite (zakładam, że kategorie są addytywne)? – bacar

Powiązane problemy