junit依赖_TestNG之失败重跑&JUnit支持

一.重跑失败的测试用例

    每次每个测试套件中有测试用例执行失败,TestNG都会在测试结果路径下生成一个testng-failed.xml文件,这个xml文件包含了一些重跑那些失败方法的必要信息,允许你只执行那些失败的方法,而不需要再次执行所有的测试方法。一个典型的例子如下:

java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xmljava -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs test-outputs\testng-failed.xml

    注意,testng-failed.xml文件包含所有执行失败的测试方法的依赖方法,保证再次执行时,不会跳过任何执行失败的测试方法。

    有时候可能想要TestNG自动尝试重跑一个测试方法,无论它是否失败。这种情况下,可以使用重试分析器。当给一个测试用例绑定了一个重试分析器,TestNG会自动调用重试分析器来确定是否可以重跑测试用例,以尝试查看刚执行失败的测试用例现在是否通过。下面举例如何绑定一个重试分析器:

    1.实现接口org.testng.IRetryAnalyzer

    2.将该实现绑定到@Test注解上,如:@Test(retryAnalyzer = LocalRetry.class)

二.举例说明

  1. 实现重跑接口,实现测试用例执行失败重跑三次:

public class MyRetry implements IRetryAnalyzer {    private int retryCount = 0;    private static final int maxRetryCount = 3;    public boolean retry(ITestResult result) {        if (retryCount < maxRetryCount) {            retryCount ++;            return true;        }        return false;    }}
  1. 绑定该实现到测试用例上:

public class TestRetry {    @Test(retryAnalyzer = MyRetry.class)    public void test1() {        System.out.println("测试执行");        Assert.fail();    }}
  1. 编写xml执行测试用例

<?xml version="1.0" encoding="utf-8" ?><suite name="mysuit">    <test name="mytest">        <classes>            <class name="com.test.testng.retry.TestRetry" />        classes>    test>suite>
  1. 执行结果,尝试重跑了三次,并且忽略了之前重跑的测试结果,只输出最后一次:

8e5e2ca44e11871562d5a38d033343dd.png

没有绑定重跑方法时的执行结果,没有显示重跑次数:

601c9373e41726b3ef5859ccbeed0d33.png

三.支持JUnit

    TestNG支持JUnit3和JUnit4测试,只需要将JUnit的jar包放在classpath的路径下,在testng.classNames属性中指定JUnit测试类,并且设置testng.junit属性为true:

<test name="Test1" junit="true">  <classes>    

    在这种情况下,TestNG的行为类似于JUnit,具体取决于类路径上的JUnit版本:

    JUnit3版本:

        1)类中所有以test开头的测试方法都将被执行。

        2)如果测试类中有一个方法setUp(),它将会在所有测试方法前执行。

        3)如果测试类中有一个方法tearDown(),它将会在所有测试方法后执行。

        4)如果测试类中有一个方法suit(),则将调用此方法返回的所有测试。

    JUnit4版本:

        TestNG将使用org.junit.runner.JUnitCore执行者来执行测试。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值