W tym artykule wspomniano, że w celu przyspieszenia testów plakat uruchamia wiele instancji NUnit z parametrami poleceń określającymi, które testy powinny zostać uruchomione w każdej instancji.
FTA:
Napotkałem dziwny problem.
Używamy nunit-console do uruchamiania testów na naszym serwerze ciągłej integracji. Ostatnio przechodziliśmy z Nunit 2.4.8 na 2.5.5 iz .Net 3.5 na 4.0. Aby przyspieszyć wykonywanie testów, uruchamiamy wiele instancji Nunit równolegle z różnymi argumentami wiersza poleceń
- Mamy dwie kopie naszych zestawów testowych i plików binarnych nunit w folderze A i B.
- W folderze A wykonujemy
nunit-console-x86.exe Model.dll Test.dll / exclude: MyCategory /xml=TestResults.xml /framework=net-4.0 / noshadow
nunit-console-x86.exe Model.dll Test.dll / include: MyCategory /xml=TestResults.xml /framework=net-4.0 / noshadow
Jeśli wykonamy polecenia w kolejności, oba działają pomyślnie. Ale jeśli wykonamy je równolegle, tylko jeden się powiedzie. O ile wiem, to ten, który jako pierwszy ładuje urządzenia testowe. Drugi kończy się niepowodzeniem z komunikatem „Nie można zlokalizować urządzenia”.
Czy ten problem jest już znany? Nie udało mi się znaleźć niczego związanego na liście błędów na launchpadzie. BTW Na naszym serwerze działa 64-bitowy system Windows Server 2008. Mogłem również odtworzyć problem w 64-bitowym systemie Windows 7.
Zakładając, że błąd został naprawiony lub nie używasz nowszych wersji wspomnianego oprogramowania, powinieneś być w stanie odtworzyć ich technikę.
Aktualizacja
TeamCity wygląda jak narzędzie, którego możesz użyć do automatycznego uruchamiania testów NUnit. Mają omówiony tutaj program uruchamiający NUnit , którego można użyć do uruchomienia wielu instancji NUnit. Oto post na blogu omawiający łączenie wielu wyników NUnit XML w jeden plik wynikowy.
Teoretycznie więc TeamCity może automatycznie uruchamiać wiele testów NUnit w zależności od tego, jak chcesz podzielić obciążenie, a następnie połączyć wyniki w jeden plik do przetworzenia po teście.
Czy to wystarczająco zautomatyzowane dla Twoich potrzeb?