我正在尝试使用 Ant 和 Maven 来构建一个项目。我正在使用 testNG 作为测试单元。如此处所述(http://testng.org/doc/ant.html),我已将 taskdef 定义如下:
<taskdef resource="testngtasks" classpath="testng.jar"/>
在蚂蚁。
在 Maven 中,我添加了以下内容(如此处所述:http: //testng.org/doc/maven.html)
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.2</version>
</dependency>
Maven 正在从 Maven 存储库中获取文件,并且我检查了 /.m2 下的位置。现在我从 maven 获得了 testNG,我应该更改 ant 中的 taskdef 以在 Maven 存储库中使用这个新的。我不知道该怎么做。我尝试了以下方法:
<taskdef resource ="testngtasks" classname="org.testng" />
和
<taskdef resource ="testngtasks" classname="org.testng" classpathref="maven.compile.classpath"/>
和
<taskdef resource ="testngtasks" />
但没有成功,第二个抱怨我不应该使用classpathref,第一个说我应该指定类。第三个正在工作,但不完全。它正在进行中,我猜它通过了 taskdef 步骤,但它没有执行测试。蚂蚁的一部分(第三个):
<taskdef resource="testngtasks" />
<target name="test" depends="compile">
<echo message="running tests" />
部分 Ant 输出:(注意执行的 echo,它以某种方式通过了 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.
我不确定如何使用 Maven 存储库中的 testNG 库来定义( taskdef )Ant 中的 testngtasks。任何见解将不胜感激