使用Maven依赖项在Ant中定义testNG任务定义



我正在尝试使用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下的位置。现在我已经从maven获得了测试ng,我应该更改任务定义器,以便在maven存储库中使用这个新的任务定义器。我不知道该怎么做。我尝试了以下操作:

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

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

<taskdef resource ="testngtasks" />

但是没有成功,第二个抱怨我不应该使用classpathref,第一个说我应该指定class。第三个是有点用,但不是完全用。它正在执行,我猜它通过了taskdef步骤,但它没有执行测试。部分Ant(用于第三个):

<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。如有任何见地,不胜感激

尝试为taskdef的类路径添加一个pathelement属性:

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

首先硬编码pathelement的路径,以确保它为您工作。

我使用下面的taskdef让它工作:

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

当Maven检索到这个jar时,它不会被命名为testing .jar。因此,您需要将其重命名为适当的jar,并将路径更新为jar。

相关内容

  • 没有找到相关文章

最新更新