В проекте используются тесты на основе TestNG, JUnit 3 и JUnit4.
TestNG может интегрироваться только с JUnit 3.
Наши тулзы могут интегрироваться только с JUnit 4.
Хочется, чтобы всё это работало одновременно.
Если Maven Surefire Plugin обнаруживает в parent pom конфиг, похожий на конфиг TestNG, то он для всего проекта все тесты интерпретирует как TestNG, то есть желание не выполняется.
Если попытаться вручную выставить провайдера (указанием зависимости на surefire-testng или surefire-junit47), то Surefire Plugin просто игнорирует это. То есть желание опять же не выполняется.
Есть такой хак: можно в тех артефактах, которые используют junit4, в execution properties писать testNgArtifactName=none:none. Тогда SurefirePlugin не может разрезолвить зависимость от TestNG и откатывается к ближайшему дефолтному провайдеру, то есть к JUnit. То есть, можно не указывать в parent pom никаких параметров и доопределить настройки в подмодулях.
И всё бы хорошо, но в случае использования этого хака, мы натыкаемся на следующий баг: если у нас есть два подмодуля, в одном из которых провайдер — JUnit, а в другом — TestNG, все properties, которые различаются между этими провайдерами (например, сверхважная пропертя SuiteXmlFiles) — игнорируются. То есть, тесты как бы работают, но управлять ими нельзя, и смысла в них в таком виде никакого (у меня они тупо начинают все падать по race conditions).
То есть единственный рабочий способ — использование профилей. Один проход сборки — c JUnit, второй проход сборки — c TestNG.
А это стрёмно, очень стрёмно. Во-первых, это в 2 раза увеличивает время исполнения на сервере Continuous Integration. Во-вторых, на CI нужно все эти профили создавать, причем на каждый чих. В-третьих результаты неудобно анализировать. В-четвертых, сами профили зверски неудобны.
Можно ли эту проблему решить как-то по-другому?
![](/photos/48985:-726580331.png)
Ответ на:
комментарий
от baverman
![](/photos/51070:-337534894.png)
Ответ на:
комментарий
от baverman
![](/photos/63780:136880169.png)
Ответ на:
комментарий
от dizza
![](/photos/63780:136880169.png)
![](/photos/1:-1892713978.jpg)
Ответ на:
комментарий
от maxcom
![](/photos/63780:136880169.png)
Ответ на:
комментарий
от stevejobs
![](/photos/1:-1892713978.jpg)
Ответ на:
комментарий
от maxcom
![](/photos/1:-1892713978.jpg)
Ответ на:
комментарий
от maxcom
![](/photos/63780:136880169.png)
Ответ на:
комментарий
от stevejobs
![](/photos/53547:-1334571900.png)
Ответ на:
комментарий
от jreznot
![](/photos/63780:136880169.png)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум junit куда положить? (2017)
- Форум Maven Eclipse (2012)
- Форум Как рулить expectedExceptions в TestNG? (2014)
- Форум [java][junit][shell] run (2012)
- Форум [Android] JUnit Data Base (2012)
- Форум Затык с Maven (2012)
- Форум eclipse+maven+tomcat (2012)
- Форум Maven на сервере (2014)
- Форум maven for c++ (2013)
- Форум Maven integration in NetBeans / Maven subprojects = cannot find symbol (2014)