Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Selenium 测试在整个套件中按优先级执行,而不是使用TestNG和Gradle执行类_Selenium_Gradle_Intellij Idea_Automated Tests_Testng - Fatal编程技术网

Selenium 测试在整个套件中按优先级执行,而不是使用TestNG和Gradle执行类

Selenium 测试在整个套件中按优先级执行,而不是使用TestNG和Gradle执行类,selenium,gradle,intellij-idea,automated-tests,testng,Selenium,Gradle,Intellij Idea,Automated Tests,Testng,全部。我将IntelliJ IDEA与Selenium、TestNG和Gradle一起使用。在我给项目添加了渐变后,我的测试以奇怪的优先级运行。 因此,我有一个XML文件用于运行TestNG: <suite name="Mobile. Firefox. 320x480"> <parameter name="browserType" value="firefox" /> <parameter name="resolution" value="320x480"/>

全部。我将IntelliJ IDEA与Selenium、TestNG和Gradle一起使用。在我给项目添加了渐变后,我的测试以奇怪的优先级运行。 因此,我有一个XML文件用于运行TestNG:

<suite name="Mobile. Firefox. 320x480">
<parameter name="browserType" value="firefox" />
<parameter name="resolution" value="320x480"/>
<listeners>
    <listener class-name="Listeners.Listeners"/>
</listeners>
<test name="320x480">
    <classes>
        <class name="TestsPerPage.TopMenu.TopMenuTests"/>
        <class name="TestsPerPage.TopMenu.EstimateProjectTests"/>
    </classes>
</test>
EstimateProjectTests.class:

public class TopMenuTests extends SetupDriver {
    TopMenuPageObjects topmenuPO;
    @BeforeClass
    public void initClasses(){
        topmenuPO = new TopMenuPageObjects(driver);
        System.out.println("Before Class TM");
    }

    @Test(groups = {"mobile"}, priority = 3)
        public void mobilePortfolioOpen() {
            System.out.println("Test TM, priority = 3");
        }
    @Test(groups = {"mobile"}, priority = 4)
    public void mobileHomePageOpen() {
        System.out.println("Test TM, priority = 4");
    }
    @Test(groups = {"mobile"}, priority = 5)
    public void mobileCompanyPageOpen() {
        System.out.println("Test TM, priority = 5");
    }
public class EstimateProjectTests extends SetupDriver {
EstimatePageObjects estimatePO;

@BeforeClass(groups = "mobile")
public void initMobileClasses() {
    estimatePO = new EstimatePageObjects(driver);
    System.out.println("Before Class EP");
}

@Test
public void estimatePageOpen(){
    System.out.println("Test EP, priority = 0");
}

@Test(priority = 1)
public void mandatoryFieldsCheck(){
    System.out.println("Test EP, priority = 1");
}

@Test(priority = 1)
public void labelsCheck(){
    System.out.println("Test EP, priority = 1");
}
因此,在运行XML文件之后,最后应该: 运行TopMenuTests.class->RunbeforeClass->按优先级运行所有测试 运行EstimateProjectTests.clall->RunbeforeClass->按优先级运行所有测试 输出应为:

Before Class Tm
Test TM, priority = 3
Test TM, priority = 4
Test TM, priority = 5
Before Class EP
Test EP, priority = 0
Test EP, priority = 1
Test EP, priority = 1
但在我将Gradle连接到该项目后,我得到了以下输出:

Before Class Tm
Before Class EP
Test EP, priority = 0
Test EP, priority = 1
Test EP, priority = 1
Test TM, priority = 3
Test TM, priority = 4
Test TM, priority = 5
因此,首先运行所有@BeforeClass,然后以某种“全局”优先级运行所有测试

有人面临同样的问题吗

我的毕业代码:

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath "io.qameta.allure:allure-gradle:2.3"
}
}
plugins {
    id "io.qameta.allure" version "2.5"
}
group 'com.indeema.web-site-automation'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: "io.qameta.allure"
sourceCompatibility = 1.8
repositories {
    mavenCentral()
}
allure {
    version = "2.2.1"
    autoconfigure = true
    aspectjweaver = true
    allureJavaVersion = "2.0-BETA18"
}
dependencies {
    testCompile group: 'org.testng', name: 'testng', version: '6.10'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.8.1'
}
test {
    useTestNG()
}

另外,对于这么多的文本,我很抱歉,我不知道如何用更简短的方式来解释。

若从命令行运行Gradle测试,您是否尝试过比较结果?看起来Gradle对测试执行顺序没有任何控制权:是的,我已经试过了。从命令行将XML文件作为TestNG套件或./gradle测试运行-得到相同的结果。@SilverK这里运气好吗?我面临着同样的问题,似乎没有已知的解决方法