Найти classpath, который Maven использует для запуска testng testcase - PullRequest
11 голосов
/ 26 октября 2011

какие параметры maven можно использовать, чтобы определить, с каким classpath maven выполняет тестовый пример testng?

Ответы [ 3 ]

16 голосов
/ 26 октября 2011

Вы не предоставили версию Maven, но, по крайней мере, в 3.x (и, возможно, также в 2.x) вы можете запускать команды с опцией -X (отладка). Таким образом, путь к классам тестов распечатывается до запуска тестов.

mvn test -X
2 голосов
/ 27 октября 2017

В общем, вы можете найти путь к классу, который использует maven, используя встроенный плагин maven зависимость и его цель build-classpath .

Если вы хотите, чтобы classpath использовал для компиляции и запуска теста, вам нужно выбрать test область зависимостей .Эта область является значением по умолчанию, но если вы хотите быть явным, вы можете установить ее с помощью -DincludeScope=test.

Другие области включают runtime, compile, provided и system.

В зависимости от того, как вы хотите использовать выход, вы можете играть с опциями -Dmdep.outputFilterFile и -Dmdep.outputFile.mdep.outputFilterFile облегчает анализ выходных данных скрипта, а опция outputFile записывает данные в файл, который некоторые инструменты могут читать напрямую.

Вот несколько примеров:

$ mvn dependency:build-classpath -DincludeScope=test -Dmdep.outputFilterFile=true|grep 'classpath='
classpath=xxx.jar:yyy.jar
$ mvn dependency:build-classpath -DincludeScope=test -Dmdep.outputFile=cp.txt
$ cat cp.txt
xxx.jar:yyy.jar
2 голосов
/ 29 июля 2014

Я не смог отформатировать свой ответ в своем комментарии, поэтому отправляю сокращенную версию здесь:

mvn test -X | grep "maven.dependency.classpath"
...