Czy możliwe jest wykonanie testów jednostkowych QUnit (javascript) od Jenkins? Mój skrypt budujący to Apache Ant. Czy Jenkins wykona to jako oddzielny krok budowania, czy też będę musiał dodać coś w konfiguracji mojego skryptu budującego mrówkę?Uruchamianie testów QUnit z Jenkinsem i Apache Ant?
Odpowiedz
W końcu udało mi się to rozgryźć.
Oto mój end-to-end realizacja:
Install PhantomJS (http://phantomjs.org/) - Zainstalowałem w moim Build/Tools
zainstalować skrypt PhantomJS QUnit androidów (https://gist.github.com/1588423) - również zainstalowałem to w moim folderze build/tools
Dodano następujący cel do mojego pliku build.xml:
<target name="qunit" description="runs QUnit tests using PhantomJS">
<!-- QUnit Javascript Unit Tests -->
<echo message="Executing QUnit Javascript Unit Tests..."/>
<apply executable="path-to-your-phantomjs-bin-folder/phantomjs" >
<arg value="-path-to-your-build-tools/qunit-runner.js" />
<arg line="--qunit path-to-your-qunit-folder/qunit.js --tests path-to-your-test-folder --juni path-where-you-want-to-write-the-JUnit-style-output/qunit-results.xml" />
<fileset dir="${basedir}/${dir.test}" includes="tests.js" />
<srcfile/>
</apply>
</target>
Pod moim projektem Jenkins config, teraz powołać Ant z "minify qunit"
wskazuję Jenkins do pliku wyjściowego XML JUnit stylu
A oto workflow:
- Sprawdź zmienia się w moim repo
- Jenkins będzie odpytywać GitHub zmian
- Jeśli są jakieś zmiany, Jenkins będzie ciągnąć w dół
- Ant zostanie wywołany, robi kompilacji, a następnie kolejny mój zespół testuje
- Wyniki badań zostaną opublikowane w JUnit-like format XML
- Jenkins przeanalizuje ten plik wyjściowy. Jeśli żadne testy nie powiodą się, kompilacja zostanie oznaczona jako "Sukces". Jeżeli jakiekolwiek próby zawiodły, kompilacja zostanie oznaczony jako „niestabilna”
- Jenkins będzie wdrożyć zmienia internetowej
- Jenkins będzie czyszczeniu-obszar roboczy
PS: W tej chwili, trzeba ręcznie usunąć plik wyjściowy XML typu JUnit. Naprawię to później.
PS: Pobierz dostosowaną kolejkę.js (https://gist.github.com/2488794)
Dlaczego dostosowany QUnit? Nie utknąłeś teraz z tą wersją? –
"--juni ścieżka-gdzie-chcesz-pisać-w-JUnit-style-output/qunit-results.xml" " Powinna to być --jednostka: lol: – kidnan1991
Jeśli dobrze rozumiem konfigurację, można uruchomić krok budowania Ant, podając lokalizację docelową build.xml
, najwyższego poziomu i -D
parametrów (jeśli są dostępne). This może być pomocne.
Czy ta pomoc? –
Pisałem Ant zadanie specjalnie do tego
Dzięki za to zadanie, Phil. Właśnie tego potrzebuję w tej chwili – carbontax
Qunit sama teraz utrzymuje biegacza phantomjs:
https://github.com/jquery/qunit/tree/master/addons/phantomjs
Więc zakładając, że już mam zainstalować phantomjs, pobrać runner.js z powyższego linku (lub pobrać za pomocą altru/jakiegokolwiek menedżera pakietu js), umieścić to gdzieś Jenkins może go znaleźć, a następnie użyć:
phantomjs path/to/runner.js path/to/your/qunit_tests.html
Daje minimalną moc takiego:
$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html
Took 29ms to run 11 tests. 11 passed, 0 failed.
Albo tak, jeśli nie:
$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html
Test failed: sinon tests of navigator.id.watch: watch sees current user
Failed assertion: check user, expected: current user, but was: baz
at file:///home/harry/superlists/superlists/static/tests/qunit.js:556
at file:///home/harry/superlists/accounts/static/tests/tests.html:69
at file:///home/harry/superlists/superlists/static/tests/qunit.js:203
at file:///home/harry/superlists/superlists/static/tests/qunit.js:361
at process (file:///home/superlists/superlists/static/tests/qunit.js:1453)
at file:///home/harry/superlists/superlists/static/tests/qunit.js:479
Took 29ms to run 11 tests. 10 passed, 1 failed.
Nie JUnit-xml integracja, ale przynajmniej zwraca kod błędu, jeśli się nie powiedzie, więc nie powiedzie się kompilacja w jenkins ...
$ echo $?
1
zaktualizowany link do runner.js https://github.com/jonkemp/qunit-phantomjs-runner – zbug
- 1. Uruchamianie bezobsługowego firewalla Xvfb z Jenkinsem do uruchamiania testów selenu
- 2. QUnit nie uruchomi testów
- 3. Uruchamianie testów NUnit napisanych w języku C# z Jenkinsem na Linuksie
- 4. Uwierzytelnianie z Jenkinsem i Gitem
- 5. Uruchamianie testów QUnit (TypeScript) z Chutzpah daje "Called start() poza kontekstem testu, gdy już się rozpoczął"
- 6. Karma vs ramach testów jaśmin, Mocha, QUnit
- 7. Dlaczego kiedykolwiek używać oczekiwać() podczas pisania testów z QUnit?
- 8. Uruchamianie konkretnych testów Django (z django-nose?)
- 9. używać gcloud z Jenkinsem
- 10. phpunit ponowne uruchamianie testów losowo
- 11. Uruchamianie testów Go w Eclipse
- 12. Programowe uruchamianie pojedynczych testów NUnit
- 13. Uruchamianie testów Scala w Intellijrze
- 14. Uruchamianie testów jednostkowych JavaScript w bezustannym budowaniu Continuous Integration
- 15. W jaki sposób mogę zbudować zestaw testów Qunit, w których wszystkie mają własne wyposażenie qunit?
- 16. Włączanie debugowania javac dla Apache ANT
- 17. Połączenie FTP Apache Ant przez TLS
- 18. Jak korzystać z node-qunit?
- 19. Uruchamianie testów aplikacji Django w PyCharm
- 20. Meteor z QUnit
- 21. Budowanie i uruchamianie testów jednostkowych C++ w Visual Studio (TDD)
- 22. Automatyczne uruchamianie testów przy użyciu capistrano
- 23. Uruchamianie testów VSTS bez pliku mstest.exe
- 24. Uruchamianie zestawu testów JUnit przy użyciu Maven
- 25. Jak uruchomić QUnit testy z wiersza poleceń?
- 26. Uruchamianie testów junitowych w intelliJ równolegle
- 27. Makabryczne dane sesji Apache dla testów jednostkowych
- 28. Robolectric: uruchamianie wielu testów kończy się niepowodzeniem
- 29. Usuń wszystkie pliki w katalogu bez podkatalogów z Apache Ant
- 30. Resharper - uruchamianie testów jednostkowych NUnit na kompilacji
Dla QUnit/Jenkins można również użyć rozszerzenia Arquillian-QUnit: http://stackoverflow.com/questions/7756644/jenkins-qunit/18263488#18263488 –