2011-09-30 10 views
16

Mamy bogatego klienta internetowego. Nasze kontrolery i fasady usług są napisane w coffeescript (JavaScript) i jquery. W przeszłości byliby to java.Jak możemy uruchomić testy jaśminu JavaScript z Jenkins (Hudson) bez ładowania strony JSP?

Aby uruchomić nasze testy jaśminu JavaScript z Jenkins/Hudson, używamy junit i htmlunit java, aby załadować stronę JSP zorientowaną na test, która zawiera specyfikacje jaśminu.

Gdy Htmlunit próbuje uruchomić, to wysadza w powietrze próbując uzyskaćPage() prawdopodobnie ze względu na ścieżkę klasy analizatora XML, która jest niezwykle trudna do wyśledzenia w naszym świecie.

Chcemy po prostu przeprowadzić testy JavaScript z Jenkins i zgłaszać błąd, jeśli test JavaScript nie przejdzie. Używamy jsp i htmlunit, aby uruchamiać testy JavaScript. Czy możemy załadować testy JavaScript i kod javascript do silnika JavaScript z Jenkinsem jako rzeczą, która go uruchamia? Jeśli tak to jak?

Odpowiedz

0

Czy możesz użyć selenu? To faktycznie użyłoby prawdziwej przeglądarki i znajdowało się tak blisko rzeczywistego środowiska, jak to tylko możliwe.

+1

Dziękuję za odpowiedź. To uczciwe pytanie. Wracam do pytania, jak zmusić Jenkinsa do rozpoczęcia selenu, przeprowadzenia testów Jasmine, aby zobaczyć wyniki. – finneycanhelp

+0

Dokładnie tego szukam ... – naugtur

+0

@ sarel-botha: Spójrz na: 1. SauceLabs, 2. Sos OnDemand i Saucery2 lub Saucery3 Pakiety NuGet do automatycznego testowania z Jenkins i SauceLabs easy –

13

Brzmi, jakbyś był w środowisku Java. Moje jasmine-maven-plugin może być dobrze dopasowane.

+1

ty. Twój kod jest niesamowity i doceniam twój wkład. Tak, jestem w środowisku Java i twój kod zainspirował rozwiązanie. Wolałbym pominąć używanie Javy, aby uruchomić Jasmine i mieć coś w jenkinsach, po prostu rozpalić testy jaśminu. Wygląda na to, że powinienem poprosić o wtyczkę Jennkins. – finneycanhelp

6

ja wcześniej rozwiązać ten problem poprzez prowadzenie badań z node.js plugin o nazwie jasmine-node

Takie rozwiązanie oczywiście wymaga node.js i kilka modułów węzeł, aby prawidłowo przeprowadzić testy jaśminu. Nie ma prawdziwej przeglądarki uruchamiającej testy, ale emulowanej za pomocą modułu o nazwie jsdom, która w zasadzie tworzy przeglądarkę bezgłową, a konkretniej DOM, z którą testy mogą wchodzić w interakcje.

Istnieją moduły węzłów dla jQuery, podkreślenia i prawdopodobnie również inne, więc można je przetestować. Możesz nawet pominąć całą emulację przeglądarki, jeśli wolisz uruchamiać testy w przeglądarce, ale uważam, że jest to zbyt uciążliwe w porównaniu do testowania Jenkinsa zautomatyzowanego.

Jaśmin-węzeł generuje raporty testu jUnit, które Jenkins może zinterpretować dobrze.

Właśnie zdałem sobie sprawę, że istnieje pewna wtyczka jenkins-jasmine-node, która może ułatwić ten proces.

8

Jasmine Reporters również będzie rozwiązaniem. Posiada instrukcje do bezmyślnego włączania się przez PhantomJS i może generować JUnit XML, dzięki czemu Jenkins może zrozumieć wyniki testu natywnie, graficznie obliczając liczbę testów, czas trwania i awarię w czasie.

Opakowanie "xvfb-run", często dostarczane z xvfb, jest tutaj bardzo pomocne, więc możesz zrobić "xvfb-run phantomjs.runner.sh ..." w naprawdę bezgłowym środowisku.

1

Grunt jest twoim przyjacielem

dostał tę konfigurację i jest naprawdę ładny , a to daje ci miejsce na rozpoczęcie tworzenia buduj serwer, wykonuj inne fajne rzeczy, takie jak wdrażanie, testowanie urządzeń itd., inne fajne rzeczy

+0

"zacznij budować serwer budujący od innych fajnych rzeczy, takich jak" ...? –

+0

wdrożenie, testowanie urządzeń itd., Inne fajne rzeczy – aqm