ant运行testng

ant运行testng

步骤

  1. 安装ant (brew install ant(对应自己系统的安装方法)) (我的安装在了/usr/local/Cellar下面)
  2. 工程中添加build.xml文件(构建文件,ant运行时需要)
  3. 切换到构建文件的目录(需要运行的工程目录下,执行命令 ant

说明:

  1. 构建文件build.xml一般放在项目的顶层目录中
  2. 构建文件默认的名称是build.xml。如果取其他名字的话,在运行的时候要把名字传给ant
    ant -buildfile *.xml
    更多build.xml信息请查看更多
    ###build.xml例子及解说
<!-- 构建文件定义一个唯一的project,每个project下可以定义多个target,target之间是依赖关系,该target所依赖的target被执行后才可以执行该target。name:项目名 default:默认运行的target,必须有的 basedir:项目的基准目录 -->
<project name="TestNGTest" default="test" basedir=".">
    <!-- Define<testng> task -->
    <taskdef name="testng" classname="org.testng.TestNGAntTask">
        <classpath>
            <pathelement location="lib/testng-6.8.7.jar"/>
        </classpath>
    </taskdef>
    <!-- 定义测试源代码的目录路径 -->
    <property name="testdir" location="${basedir}/src/test"/>
    <property name="srcdir" location="src" />
    <!-- 定义库目录路径 -->
       <property name="libdir" location="lib" />
       <property name="full-compile" value="true" />
       <!-- path元素用来表示一个类路径  refid:对当前构建文件中某处定义的一个path的引用 location:表示一个文件或目录,ant在内部将此扩展为一个绝对路径-->
       <path id="classpath.base"/>
       <path id="classpath.test">
       <!-- fileset定义一组文件,dir:表示fileset的基目录 includes:需要包含的文件模式列表 -->
           <fileset dir="${libdir}">
             <includes name="**/*.jar" />
          </fileset>
          <pathelement location="${testdir}" />
          <pathelement location="${srcdir}" />
          <path refid="classpath.base" />
       </path>
       <!-- target标签,name:目标名称,必须有  depends:依赖的目标 -->
       <target name="clean" >
       <!-- delete标签,删除一个文件或一组文件。verbose:指定是否列出所删除的文件,默认不列出 -->
          <delete verbose="${full-compile}">
            <fileset dir="${testdir}" includes="**/*.class" />
          </delete>
       </target>
       <target name="compile" depends="clean">
       <!-- javac标签,用于编译一个或一组java文件。srcdir:源程序的目录 destdir:class文件的输出目录 verbose:表示提供详细的输出信息  classpath:所使用的类的路径-->
          <javac srcdir="${srcdir}" destdir="${testdir}" 
             verbose="${full-compile}">
             <classpath refid="classpath.test"/>
          </javac>
       </target>

       <target name="test" depends="compile">
        <testng outputdir="${testdir}" classpathref="classpath.test"> 
          <xmlfileset dir="${basedir}" includes="testng.xml"/> 
        </testng>
       </target>

    </project>

遇到的问题

1.

运行 ant(在testng工程所在目录下运行)
报错:错误: 找不到或无法加载主类 org.apache.tools.ant.launch.Launcher
解决办法:
去下载的ant的目录下找到ant-launcher.jar,将目录放到classpath

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/Cellar/ant/1.9.7/libexec/lib

2.

报错:workspace/testng/build.xml:35: No suites, classes, methods or jar file was specified.
解决办法:

<xmlfileset dir="${basedir}" includes="TestNG1.xml"/> 

此段中的testng.xml文件路径配置错误或者文件名错误,找到testng.xml正确的路径或者名称重新配置即可

3.

testng] Error: A JNI error has occurred, please check your installation and try again
[testng] Exception in thread “main” java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
原因解决办法:

原因: 却少jcommander.jar
解决: 添加jcommander.jar依赖,然后把jar包复制到工程的lib文件夹下(如果没有放到lib文件夹下也会报错)

<dependency>
    <groupId>com.beust</groupId>
    <artifactId>jcommander</artifactId>
    <version>1.48</version>
</dependency>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值