Есть ли способ запустить тест карате на этапе тестирования интеграции maven?

Есть ли способ запустить тест каратэ на этапе тестирования интеграции maven? Кажется, что плагин surefire жестко запрограммирован в Karate. Я попытался переопределить его с помощью отказоустойчивого плагина, но безуспешно. Я не хочу, чтобы тест выполнялся вместе с модульными тестами.

Заранее спасибо!


person Adnan Sarajlic    schedule 30.01.2018    source источник


Ответы (1)


Кажется, что плагин surefire жестко запрограммирован в Karate

Я не уверен, откуда у вас такое впечатление, но нет, плагин surefire не встроен в карате жестко.

Имейте в виду, что самый простой способ не запускать тест JUnit через surefire - это не использовать *Test.java соглашение об именах.

Я думаю, что решение для вас простое, независимо от того, какой тест JUnit является «точкой входа» для ваших тестов Каратэ (рекомендуется использовать параллельный запуск) - просто используйте соглашения об отказоустойчивом именовании.

А затем просто включите отказоустойчивый плагин в соответствии с примерами, и он должен работать. Если у вас возникли проблемы с тем, чтобы это работало (что маловероятно), вам следует взглянуть на профили maven.

РЕДАКТИРОВАТЬ: также см. Этот комментарий: Есть ли способ запустить тесты Karate в качестве набора интеграционных тестов на предварительно загруженном сервере Spring Boot?

Оказывается, я не могу это сделать, и это ограничение Maven, а не Каратэ. Как добавить еще одну папку с исходным кодом теста в Maven и скомпилировать ее в отдельную папку? - Вот мой тестовый проект, чтобы доказать это: https://github.com/djangofan/spring-boot-hello - Спасибо за то, что вы привели меня, по-видимому, правильным путем для обнаружения ограничения. Использование Gradle, вероятно, решит мою проблему, но это не вариант для моего проекта. Если я использую Karate для «отдельных интеграционных тестов», мне нужен отдельный тестовый модуль mvn.

person Peter Thomas    schedule 30.01.2018
comment
Привет, Питер, спасибо за ответ. Что касается жестко запрограммированного плагина surefire, на выходе консоли была другая версия, чем та, которую я вытащил в моем файле pom, но теперь она кажется правильной. Что касается реальной проблемы, я исправил это с использованием профилей maven. Еще раз спасибо. - person Adnan Sarajlic; 31.01.2018
comment
@AdnanSarajlic отлично! Поскольку вы новичок в Stack Overflow, могу напомнить вам подумать о том, чтобы пометить этот ответ как принятый. - person Peter Thomas; 31.01.2018
comment
Я отказался от попыток использовать каратэ без сбоев. Так что теперь у меня просто тесты в отдельном модуле. Мне нужно будет что-то придумать, чтобы запустить / остановить тестовую службу, причем это будет отдельный модуль. Вероятно, будет использоваться двухэтапный файл сборки Docker. - person djangofan; 02.12.2019
comment
Создается впечатление, что surefire жестко запрограммирован, потому что даже если тесты запускаются через maven-failsafe-plugin, отчеты по карате все еще находятся в папке / target / surefire-reports, а не в папке failsafe-reports. - person Mahatma_Fatal_Error; 24.07.2020
comment
@Mahatma_Fatal_Error, так как кажется невозможным получить отказоустойчивую работу с карате, скорее всего, так и останется :) - person Peter Thomas; 24.07.2020