【译】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.ITestListener 或 org.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 或者内嵌的 <classpath> 必需提供运行测试的类路径。

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

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

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

内嵌的元素

classpath

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

bootclasspath

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

xmlfileset

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

classfileset

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

sourcedir

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

jvmarg

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

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

sysproperty

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

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

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

reporter

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

查看源码 打印?
<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

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

例子

Suite xml

查看源码 打印?
<testng classpathref="run.cp"
        outputDir="${testng.report.dir}"
        sourcedir="${test.src.dir}"
        haltOnfailure="true">
  
   <xmlfileset dir="${test14.dir}" includes="testng.xml"/>
</testng>

Class FileSet

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

你可能感兴趣的:(【译】TestNG官方文档中文版(13)—— TestNG 与 Ant任务)