首页 > 解决方案 > TestNg 评估程序

问题描述

考虑我在 testng 中尝试的以下两个代码,输出是不同的,我不明白为什么它首先执行某些 tc 然后其他,testng 如何决定首先运行哪个 tc

代码 1:

package test;

import org.testng.annotations.Test;

public class day1 {
    @Test
    public void a()
    {
        System.out.println("1");
    }

    @Test
    public void c()
    {
        System.out.println("3");
    }

    @Test
    public void b()
    {
        System.out.println("2");
    }

    @Test(dependsOnMethods = { "c" })
    public void d()
    {
        System.out.println("4");
    }

    @Test
    public void k()
    {
        System.out.println("k");
    }

    @Test
    public void e()
    {
        System.out.println("e");
    }
}

输出:

3 克 1 2 4

代码 2:

package test;
import org.testng.annotations.Test;

public class day1 {
    @Test
    public void b()
    {
        System.out.println("1");
    }

    @Test
    public void f()
    {
        System.out.println("2");
    }

    @Test
    public void c()
    {
        System.out.println("3");
    }

    @Test
    public void d()
    {
        System.out.println("4");
    }

    @Test
    public void e()
    {
        System.out.println("5");
    }

    @Test(dependsOnMethods = { "e" })
    public void a()
    {
        System.out.println("6");
    }

    @Test
    public void g()
    {
        System.out.println("g");
    }
}

输出 :

1

3

4

5

2

G

6

e

标签: javatestng

解决方案


当您未priority在 testNG 中指定时,它会根据其方法名称的字母顺序决定其内部逻辑的优先级,而与它们在代码中的实现位置无关。此外,如果一个测试方法(1) 依赖于其他测试方法(2),那么只有在测试方法(1) 通过时才会执行测试方法(2)。

理想情况下,您应该对每个测试方法使用优先级以确保顺序执行。


推荐阅读