【译】TestNG官方文档中文版(13)—— TestNG 与 Ant任务

TestNG 与 Ant Task

使用如下方法在ant任务中定义TestNG:

看源码 打印?
<taskdef resource="testngtasks" classpath="testng.jar"/>
下面的任务运行了TestNG测试,并且总是运行在分支式JVM中。它接受如下属性:
属性 说明 必需
annotations 字符串"JDK"或者"Javadoc",定义了测试中使用哪种注解。如果使用了Javadoc,那么也需要制定"sourcedir". 不是。默认是"JDK",如果你使用的是JDK 5的包,反之就是"Javadoc" ,如果你使用了JDK 1.4的包
classfilesetref 要运行的测试类所引用的 FileSet 到的结构。  
classpath 路径,PATH 类似于要运行的测试。  
classpathref 到某个路径下要运行的测试的引用  
dataProviderThreadCount 给data provider提供的用来运行测试的线程数量。除非启动并行模式,否则默认为忽略 1
delegateCommandSystemProperties 把命令行属性传递为系统属性 非必需,默认为false
dumpCommand 打印出TestNG运行的命令 非必需,默认为false
enableAssert 启用JDK 1.4的断言 非必需,默认为true
failureProperty 失败事件中设置的属性名称,只有在haltonfailure 没有设置的时候使用 非必需
haltonfailure 在测试运行中,如果发生失败则停止构建过程 非必需,默认为false  
haltonskipped 只要至少发生一处skipped测试,就停止构建过程。 非必需,默认为false
groups 要运行的组的名字,通过逗号分隔  
excludedgroups 要排除的组的名字,通过逗号分隔  
jvm 要使用的JVM通过使用Runtime.exec()来调用 java
listeners 逗号或者空格分隔的全程类名列表,其中的类用作TestNG的监听器(例如 org.testng.ITestListenerorg.testng.IReporter) 非必需
outputdir 测试报表输出目录 非必需,默认为test-output.
skippedProperty 发生skipped事件时候属性的名字,只有在 haltonskipped 没有设置的时候生效 非必需
sourcedir 给JDK 1.4 使用的一个像路径一样的测试结构(说白了就是个目录)使用(JavaDoc的那种注解)  
sourcedirref 给JDK 1.4使用的到一个像路径已将结构源码包的引用(使用JavaDoc那样的注解)  
suiteRunnerClass 完整TestNG启动器的类名

非必需,默认为 org.testng.TestNG

parallel 使用并行模式运行测试——可以是methods 或 tests 如果没出现就是非必需的。此时不使用并行模式
threadCount 并行模式下线程的数量。如果没有使用并行模式,则被忽略 1
testJar 志向一个包含有tests和suite定义的jar文件的路径  
timeOut 以毫秒记的,所有的测试最多可以总计运行的时间  
useDefaultListeners 是否使用默认的监听器和报表生成器 默认为true
workingDir ant 运行TestNG的工作目录  
xmlfilesetref 在要运行的suite定义中指向 FileSet 结构的引用。  
suitename 如果suite的xml文件或者源码中没有指定,那么可以在这里指定test suite的名字 非必需,默认为"Ant suite"
testname 如果suite的xml文件或者源码中没有指定,那么可以在这里指定test的名字 非必需,默认为"Ant suite"

属性 classpath, classpathref 或者内嵌的 必需提供运行测试的类路径。

属性 xmlfilesetref, classfilesetref 或内嵌的 必需分别得提供自己使用的类测试

注意: 如果使用JDK 1.4 那么必需使用属性 sourcedir, sourcedirref 或内嵌的

注意: 使用 不会自动添加测试类到你的类路径中中,你可能需要重复处理这些类一边骑能够在任务中被正确的使用。

内嵌的元素

classpath

任务支持内嵌的 元素,它表示一个路径一样的结构(PATH-like structure)。

bootclasspath

引导类程序的位置,可以通过使用这个类似路径的结构来指定。如果 fork 没有被设置就被忽略。

xmlfileset

suite的定义 (testng.xml) 可以通过使用 FileSet 结构传递给task

classfileset

TestNG 也可以直接运行类,通过使用 FileSet 结构。

sourcedir

路径似的结构,给那些使用JDK 1.4测试中使用Javadoc风格的注解的类使用的

jvmarg

通过内嵌的 元素传递给JVM的其他参数,例如:

查看源码 打印
<testng>
   <jvmarg value="-Djava.compiler=NONE" />
   
testng>

sysproperty

使用 元素来为类指定特殊的系统属性值。这些属性在VM执行测试的时候可以被调用。次元素的属性与环境变量 一样:

查看源码 打印?
<testng>
   <sysproperty key="basedir" value="${basedir}"/>
   
testng>

will run the test and make the basedir property available to the test.

reporter

内部的 元素可以用来注入自定义的报表监听器,允许用户设置自定义的属性,以便在运行时调整报表器的行为。
这个元素有个 classname 属性,它是必须的,其中指明了自定义监听器的类。为了设置报表器的属性, 隐患苏可以包含多个内嵌的 元素,并且会提供 namevalue 属性,见下面的例子:

查看源码 打印?
<testng ...>
   ...
   <reporter classname="com.test.MyReporter">
      <property name="methodFilter" value="*insert*"/>
      <property name="enableFiltering" value="true"/>
   reporter>
   ...
testng>
查看源码 打印?
public class MyReporter {
 
  public String getMethodFilter() {...}
  public void setMethodFilter(String methodFilter) {...}
  public boolean isEnableFiltering() {...}
  public void setEnableFiltering(boolean enableFiltering) {...}
  ...
}
你要考虑好,在目前的情况下只支持有限的属性类型: String, int, boolean, byte, char, double, float, long, short.

env

可以通过使用 元素来为在VM中被调用的TestNG传递环境变量。关于 元素属性的说明,请参看 exec 任务的说明。

例子

Suite xml

查看源码 打印?
        outputDir="${testng.report.dir}"
        sourcedir="${test.src.dir}"
        haltOnfailure="true">
  
   

Class FileSet

查看源码 打印?
<testng classpathref="run.cp"
        outputDir="${testng.report.dir}"
        haltOnFailure="true"M verbose="2">
    <classfileset dir="${test.build.dir}" includes="**/*.class" />
testng >

你可能感兴趣的:(ant,文档,javadoc,测试,jdk,annotations)