Есть у меня несколько тестов написанных на Selenium WebDriver, Java без всяких там TestNG / JUnit, просто код Java который запускается и бежит.
Нужно настроить его запускаться через Jenkins.
В предыдущем обсуждении мне тут ответили, что Frameworks типа TestNG / JUnit не обязательны, но я пока не нашёл в интернете туториал объясняющий как настроить Jenkins под это.
Подскажите пожалуйста подобный тюториал. Предпочтительнее на Английском, можно и на Русском
Так а как же ваши тесты выглядят? Просто классы с main методом или как?
А как вы их сейчас компилируете и запускаете?
Ну да, просто код в Eclipse. На кнопку Run нажимаю и запускаю. Окончательная версия кода делается executable jar файлом через extract to jar и запускается кликом мышки / batch файлом. Вообще-то вся эта кухня сейчас запускается windows scheduler-ом но начальнику это не нравится, хочет по правильному, jenkins-оном всё это делать
Ну, тогда такой способ никуда не годится.
Нужно, чтобы тесты
- Запускались из командной строки (для этого нужно написать скрипт на Gradle, Maven или Ant)
- Генерировали отчёты (для этого надо использовать JUnit или TestNG)
- И тогда в Jenkins останется всего-навсего добавить команду “gradle test”, “mvn test” или “ant test”.
Вот видеотуториал “Как начать писать UI тесты за 10 минут”: Как написать UI тест за 10 минут on Vimeo
Спасибо!
Завтра посмотрю, разберусь
И, если можно, расскажите вкратце что мне лучше выбрать / по каким критериям решать что выбрать: Gradle, Maven или Ant и тоже самое относительно JUnit или TestNG.
Спасибо!
Оба вопроса - холивары. Дело вкуса. Есть много споров на эти темы.
Вот лично мои предпочения.
-
Gradle, Maven или Ant
- лучше всего Gradle - он самый новый, быстрый, лакноичный. Единственный минус - если не очень-то знаком с синтаксисом Groovy, находить ошибки в билд-скрипте иногда нетривиально.
- на втором месте Ant - билд-скрипт пишется на XML. Поэтому он вдвое длиннее, но зато любая IDE делает autocomplete.
- и в худшем случае Maven. Он самый популярный, но так просто исторически сложилось. На самом деле он самый медленный, багнутый и вербозный.
-
JUnit или TestNG
- Я однозначно предпочитаю JUnit. Он проще и надёжнее.
- TestNG можно использовать, ничего страшного в нём нет. Он даёт некоторые дополнительные фичи по сравнению с JUnit, но я убеждён, что эти фичи в случае UI-тестов вредные.
Спасибо!
А если просто взять и запускать из Jenkins этот batch файл через командную строку, то это будет слишком примитивно?
Так оно и сейчас подобным образом запускается Windows Task Scheduler-ом. Начальник говорит, что так не круто, надо по взрослому
Да ничего это не примитивно. Нормально. Только мне непонятно, какой такой нехилый bat-файл должен быть, который умеет скачать зависимости, скомпилировать проект и запустить тесты? Слабо верится.
Не, я код проекта exported as runnable jar из Eclipse а batch file просто его запускает java -jar filename
А почему нельзя сделать метод Main который будет запускать все остальные тесты? И его потом уже запускать через командную строку?
Можно. Но ещё проще его вовсе не писать. В том-то и прелесть, что Gradle и Maven сами находит ваши тесты и их запускают. И составляют отчёт. Вам для этого даже ничего делать не надо. Даже никакого Main-метода.
(Ведь кто-то всё равно должен скомпилировать весь код. То есть билд-скрипт всё равно придётся сделать)