4. 参数
Junit是不带任何参数的,不论是测试方法还是配置方法,而TestNG都是可以添加参数的,有2种方法。
(1) 使用Parameter参数
@Parameters({ "first-name" })
@Test
public void testSingleString(String firstName) {
System.out.println("Invoked testString " + firstName);
assert "Cedric".equals(firstName);
}
参数的值放到配置文件中
<suite name="My suite">
<parameter name="first-name" value="Cedric"/>
<test name="Simple example">
这种方法偶尔用之还可以,但是很遗憾的是第一只能传String(可能可以其他的基本数据类型??但至少不能传复杂对象),第二数据写在配置文件中,不能所见即所得。
但是下面的方法真的给我们惊喜。
(2) DataProvider
这是从4.0以后增加的功能,看看怎么实现。
// This method will provide data to any test method that declares that its Data Provider
// is named "test1"
@DataProvider(name = "test1")
public Object[][] createData1() {
return new Object[][] {
new Object[] { "Cedric", new Integer(36) },
new Object[] { "Anne", new Integer(37)},
};
}
// This test method declares that its data should be supplied by the Data Provider
// named "test1"
@Test(dataProvider = "test1")
public void verifyData1(String n1, Integer n2) {
System.out.println(n1 + " " + n2);
}
执行的结果
Cedric 36
Anne 37
DataProvider返回的是个2维数组的对象,什么数据都可以提供了吧,而且可以让你的测试方法执行多次。而且最重要的是和测试方法写在一起,所见即所得。
5. Ant的集成和Daily Build
TestNG对Ant提供了很好的支持,这是我写得测试用的Ant脚本
<project default="testng">
<property file="build.properties" />
<path id="cpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
//定义testng的任务
<taskdef resource="testngtasks" classpath="lib/testng-4.4-jdk15.jar" />
<target name="compile">
<mkdir dir="test/classes"/>
<javac destdir="test/classes"
srcdir="${testng.dir}"
debug="true"
encoding="GBK" >
<classpath refid="cpath"/>
</javac>
</target>
//执行testng的任务
<target name="testng" depends="compile">
<testng classpath="test/classes">
<xmlfileset dir="${configure.dir}" includes="testing.xml" />
</testng>
</target>
</project>
简单的不能在简单了,你只要告诉ant来调用,然后告诉ant配置文件在哪里,剩下的事都交给testng自己的配置文件去做就行了,然后ant以后都不用修改了。不建议将任务的细节写在ant里面,首先功能不如testng自己的配置文件强大,而且ant需要维护。
posted on 2005-12-15 10:48
fanta 阅读(2204)
评论(0) 编辑 收藏 所属分类:
Java