определение testNG taskdef в Ant с использованием зависимостей Maven - PullRequest
0 голосов
/ 01 сентября 2011

Я пытаюсь использовать Ant и Maven для создания проекта. Я использую testNG для тестовых блоков. Как указано здесь (http://testng.org/doc/ant.html), я определил taskdef следующим образом:

<taskdef resource="testngtasks" classpath="testng.jar"/> 

в Ant.

В Maven я добавил следующее (как указано здесь: http://testng.org/doc/maven.html)

<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.2</version>
</dependency>

Maven получает файлы из репозитория maven, и я проверил расположение в /.m2. Теперь, когда я получаю testNG от maven, я должен изменить taskdef в ant, чтобы использовать этот новый в репозитории Maven. Я не уверен, как это сделать. Я пробовал следующее:

<taskdef resource ="testngtasks" classname="org.testng" /> 

и

<taskdef resource ="testngtasks" classname="org.testng" classpathref="maven.compile.classpath"/>

и

<taskdef resource ="testngtasks" />

но безуспешно, второй жалуется, что я не должен использовать classpathref, а первый говорит, что я должен указать class. Третий работает, но не полностью. Это происходит быстро, и я думаю, что оно проходит шаг taskdef, но не выполняет тесты. Часть Муравья (для третьего):

<taskdef  resource="testngtasks"  />

<target name="test" depends="compile">
<echo message="running tests" />

Часть вывода Ant: (обратите внимание, что эхо выполнено, оно каким-то образом прошло этап taskdef)

compile:
    [javac] /home/shahin/Files/Development/Ant/ServiceEJBSample3/build-testNG.xml:31: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

test:
     [echo] running tests

BUILD FAILED
/home/shahin/Files/Development/Ant/ServiceEJBSample3/build-testNG.xml:84: Problem: failed to create task or type testng
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

Я не уверен, как использовать библиотеку testNG в репозитории Maven для определения (taskdef) тестовых заданий в Ant. Любые идеи будут высоко оценены

Ответы [ 2 ]

0 голосов
/ 22 января 2013

Я получил его на работу, используя следующую taskdef:

<taskdef resource="testngtasks" classpath="./lib/testng-6.2.jar"/>

Когда Maven получает банку, она не будет называться testng.jar. Поэтому вам нужно будет переименовать его в соответствующий jar и обновить путь к jar.

0 голосов
/ 05 июня 2012

попробуйте поместить свойство pathelement в путь к классу вашей taskdef, например:

<taskdef resource="testngtasks">
     <classpath>
          <pathelement path="[path to]/testng.jar"/>
     </classpath>
</taskdef>

сначала жестко закодируйте путь для pathelement, чтобы убедиться, что он работает для вас.

...