Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium,TestNG xml文件,如果在不同的类文件中添加相同的优先级,则按执行顺序发出_Java_Xml_Selenium_Selenium Webdriver_Testng - Fatal编程技术网

Java Selenium,TestNG xml文件,如果在不同的类文件中添加相同的优先级,则按执行顺序发出

Java Selenium,TestNG xml文件,如果在不同的类文件中添加相同的优先级,则按执行顺序发出,java,xml,selenium,selenium-webdriver,testng,Java,Xml,Selenium,Selenium Webdriver,Testng,我正在将SeleniumWebDriver与TestNG框架一起使用。在xml文件中,我调用了包含2个测试的两个类文件。我为每门课的考试增加了优先级。但它总是以相同的优先级执行来自不同类的所有测试 一班 package demo; import org.testng.annotations.Test; public class testing1 { @Test(priority = 1) public void test1(){ System.out.pri

我正在将SeleniumWebDriver与TestNG框架一起使用。在xml文件中,我调用了包含2个测试的两个类文件。我为每门课的考试增加了优先级。但它总是以相同的优先级执行来自不同类的所有测试

一班

package demo;

import org.testng.annotations.Test;

public class testing1 {

    @Test(priority = 1)
    public void test1(){
        System.out.println("Test one");
    }

    @Test(priority = 2)
    public void test2(){
        System.out.println("Test two");
    }
}
二班

package demo;

import org.testng.annotations.Test;

public class testing2 {

    @Test(priority = 1)
    public void test3(){
        System.out.println("Test Three");
    }

    @Test(priority = 2)
    public void test4(){
        System.out.println("Test Four");
    }

}
xml文件

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="CavionTestSuit">
    <test name="Testing11">
        <classes>
            <class name="demo.testing1"></class>
            <class name="demo.testing2"></class>
        </classes>
    </test>
</suite> 
如何根据添加的优先级在每个类中一起运行测试。 我的预期产出是:

Test one
Test two
Test Three
Test Four

如果我为第二个类添加优先级3和4,它将按照xml文件中给定的顺序执行。但对于具有多个类和测试的项目来说,这是不可行的

测试执行将在testng线程空闲并拾取测试用例时进行

在您的情况下,线程在testing1类中查找测试用例,并在testing1类中找到优先级为1的测试用例,线程将占用方法test1,一旦test1的执行完成,线程将释放并查找另一个要执行的测试用例,它在Testing2类中找到优先级为1的另一个测试用例,因此,线程占用test3方法而不是test2方法

请注意,当使用testng.xml执行时,优先级不受类级别的限制,它将被分析为总体优先级,第一类第一优先级将首先执行

请使用下面的行检查它正在执行的线程

System.out.println("Test Case three with Thread Id:- "+ Thread.currentThread().getId());
要实现您的场景,您可以通过两种方式实现

--删除测试级别的优先级,然后您的测试类将按顺序执行


--将testing2类中的测试用例重新排序为优先级3和优先级4这是TestNG的预期行为。您作为一名员工面临着这个问题

@优先级是全局的

希望这能清楚地说明根本原因

解决方案:
dependsOnMethods
dependsOnGroups
应该是在类中排序的首选方式

有关这方面的更多见解和信息,请查看下面testNG的github链接

System.out.println("Test Case three with Thread Id:- "+ Thread.currentThread().getId());