testNG与Junit相同功能概要介绍(2)
上一篇 /
下一篇 2012-03-22 12:00:29
/ 个人分类:TestNG
有时候要对某一特定方法传入各种不同的参数值,用来测试这个方法的健壮性。以前TDD 中必须为每种参数值单独写一个独立的测试方法。这样就造成很多测试代码测试的都是同一方法,只是传入的参数值有不同。testNG同 Junit4 中一样只需要一个测试方法就能针对 N 种不同参数值进行 N 次测试。试看如下代码:
- package main;
-
- import org.testng.annotations.BeforeClass;
- import org.testng.annotations.DataProvider;
- import org.testng.annotations.Test;
-
-
-
-
- public class TestParameter {
- private static Money f12CHF;
-
- @BeforeClass
- public static void setUp() {
- f12CHF = new Money(12, "CHF");
- }
-
-
-
-
-
-
- @DataProvider(name = "test-provider")
- public static Object[][] words() {
- return new Object[][] { { new Money(23, "CHF"), new Money(11, "CHF") },
- { new Money(28, "CHF"), new Money(16, "CHF") } };
- }
-
-
-
-
-
-
-
-
- @Test(dataProvider = "test-provider")
- public void add(Money expected, Money target) {
- assert true : expected.equals(f12CHF.add(target));
- }
- }
请详细查看注释中所标注的注意点。首先 设置 测试类构造方法。用此方法进行参数初始化。该方法 返回一个Object[][] 类型。需要用 @DataProvider 注解来修饰该方法,并设置name值。在该方法内部,仅仅创建一个多维Object 数组 。之后在需要测试的方法中设置@Test的dataProvider属性。其值要和上面 @DataProvider修饰的 方法中的name值相同。然后运行 testNG 后,测试通过后的界面如下图:
由图可知执行该测试类时,通过 add ()
测试方法运行两次,将代码中 words 方法里的每个值对运行一次。
套件测试
相比 Junit 的套件测试, testNG套件测试可以通过testng.xml文件来实现。代码示例如下:
- <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
-
- <suite name="test suite" verbose="1" parallel="false" thread-count="2">
- <test name="main">
- <classes>
- <class name="main.TestSample" />
- <class name="main.TestFixture" />
- <class name="main.TestParameter" />
- </classes>
- </test>
-
- </suite>
这里略微详细讲一下testng.xml文件中相关标签和属性。
<suite>这是testng.xml文件的根标签,描述一个测试套件。套件由多个<test>组成。属性介绍如下:
name:套件名称,是必需要有的。
verbose:执行的输出详细程度。因为testng会输出html格式的测试报告。因此该属性决定报告详细程度。程度值由0-10.0是没有,10是最详细。不是必需有的。
parallel:表明是否利用不同线程来执行测试套件。值有tests,methods或none。不是必需有的。
thread-count:如果启用上面parallel模式,使用线程数。而且如果启用,默认值是5。不是必需有的。
上面parallel和thread-count属性通常都是一块用的。
<suite>标签可以包括1到多个<test>标签。这里name属性是<test>的必须属性,代表测试名称。
<classes>和<class>标签都是<test>子标签,定义在测试中所包含的测试类。name属性也是必须属性,而且必须是该测试类的全路径名称。如代码中的main.TestSample.
可以在eclipse中点击testng.xml文件,右键run as中的testNG,结果如下图:
如图,可看到包中所有的测试类都测试运行通过。
可以通过在eclipse中的window-->Preferences中设置testng的测试报告输出路径。如下图:
这里可见我本机设置的是绝对输出路径,可去该路径下双击index.html文件查看测试报告,如下图:
收藏
举报
TAG: