8

Używamy Jenkinsa do ciągłej integracji aplikacji internetowych .NET z NAnt/NUnit dla testów .NET. Jenkins jest skonfigurowany z 9 niewolnikami (z których każdy to Windows Server 2003), który uruchamia wiele kompilacji wraz z ich automatycznymi testami.Jak używać zdalnych przeglądarek do zadań js-test-driver na Jenkins?

Próbujemy konfiguracji js-test-kierowcy do prowadzenia nasze testy jednostkowe Javascript oraz poniżej NAnt zadanie pracuje dobrze lokalnie na stacjach roboczych deweloperskich. Odkrywca Internetu to jedyna przeglądarka, którą chcielibyśmy przetestować, ponieważ jest to jedyna docelowa przeglądarka dla wszystkich naszych aplikacji internetowych.

<target name="jsTests" > 
    <echo message="Running JavaScript tests..." /> 
    <exec program="java.exe"> 
     <arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" /> 
     <arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" /> 
     <arg line="--port 9876"/> 
     <arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/> 
     <arg line="--verbose"/> 
     <arg line="--reset"/> 
     <arg line="--tests all"/> 
     <arg line="--testOutput '${results.jstestdriver.dir}'"/> 
    </exec> 
</target> 

Prowadzimy problemy z tego samego zadania na Jenkins, prawdopodobnie dlatego, że:

  1. to serwer i prowadzimy jako konto usługi
  2. istnieją ograniczenia zabezpieczeń na instalację przeglądarki na serwerze

GettingStarted stronę na js-test-driver wiki mówi mogliśmy uruchomić przeglądarkę s na innym komputerze niż serwer gdzie js-test-kierowca jest uruchomiony:

Zanim będzie można uruchomić żadnej z prób trzeba uruchomić serwer testowy oraz wychwytywania co najmniej jednej przeglądarce niewolnikiem. Serwer nie musi znajdować się na komputerze, na którym zawodnik testowy jest i przeglądarek same mogą być na różnych maszynach również.

  1. ktoś zrobił to w konfiguracji Jenkins/systemu Windows?
  2. Czy istnieją jakieś inne alternatywy dla skalowalnej instalacji do uruchomienia js-test-sterownik?

Odpowiedz

2

robiłem coś podobnego, ale nie w 100% Instalator systemu Windows, ale myślę, że nie będziesz miał żadnych problemów robi coś podobnego w systemie Windows.

W moim przypadku musiałem testować na więcej przeglądarek: IE7, IE8, IE9, Chrome, Safari, Firefox 3.6 i najnowsze wersje, więc to, co zrobiłem, było zainstalowanie maszyn wirtualnych ze wszystkimi przeglądarkami, że potrzebują, a inna maszyna z jstestdriver działa na trybie serwera:

java -Xmx256m -jar JsTestDriver-1.3.4-a.jar --port 4224 

wszystkie maszyny wirtualne z przeglądarek, mają zawsze instancją im wskazując na tym serwerze (http: // [jstd-server-ip]: 4224/capture)

na tych maszynach Stworzyłem zaplanowanego zadania, które resetuje wystąpienie przeglądarek każdego ranka, bo widziałem, że niektóre przeglądarki, sp ecially IE7 ma tendencję do zaprzestania działania, jeśli trwa dłużej niż 3 dni.

taskkill /f /IM iexplore.exe 
iexplore.exe http://[jstd-server-ip]:4224/capture 

tych maszyn, a serwer jstestdriver działają cały czas. Nie jestem pewien, czy w twoim przypadku to możliwe.

następnie w aplikacji, używam plugin maven do testów wodowania: http://code.google.com/p/jstd-maven-plugin/wiki/GettingStarted że działa lepiej w moim przypadku, ale jeśli nie używasz Maven, myślę, że w NAnt Powinni być coś takiego:

<target name="jsTests" > 
    <echo message="Running JavaScript tests..." /> 
    <exec program="java.exe"> 
     <arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" /> 
     <arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" /> 
     <arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/> 
     <arg line="--verbose"/> 
     <arg line="--reset"/> 
     <arg line="--tests all"/> 
     <arg line="--testOutput '${results.jstestdriver.dir}'"/> 
    </exec> 
</target> 

I JsTestDriver.conf dodać tę linię na górze:

server: http://[jstd-server-ip]:4224 

mówi klient wystąpienie jstestdriver wykonywany przez Jenkin s używać http: // [jstd-server-ip]: 4224 jako serwer.

Mam nadzieję, że to pomoże!

+0

Niesamowite, dziękuję. Przetestuję to i zaktualizuję ... –

+0

Działa jak urok ... Wprowadziłem jeszcze jedną małą zmianę w skrypcie NAnt, aby usunąć również argument przeglądarki, stamtąd: ' ' –

Powiązane problemy