TestNG中Class级别并行运行的配置

时间:2017-01-27 10:56:07

标签: java intellij-idea testng

我试图找出如何在一个类中首先运行我的所有TestNG测试,然后在第二个类中运行所有测试,依此类推。我需要使用并行运行来加速执行。这些是硒测试,因此可能会慢速运行。

给出以下TestNG套件文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite1" verbose="1" parallel="classes" thread-count="2">

<test name="parallel-running-test">

    <classes>
        <class name="com.mycompany.myproject.mypackage.MyFirstClassTest"/>
        <class name="com.mycompany.myproject.mypackage.MySecondClassTest"/>
    </classes>
</test>

..以及以下2个类:

第一课:

public class MyFirstClassTest {

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

@Test (dependsOnMethods = {"myFirstClassTestOne"})
public void myFirstClassTestTwo(){
    System.out.println("myFirstClassTestTwo");
}

@Test (dependsOnMethods = {"myFirstClassTestTwo"})
public void myFirstClassTestThree(){
    System.out.println("myFirstClassTestThree");
}

@Test(dependsOnMethods = {"myFirstClassTestThree"})
public void myFirstClassTestFour(){
    System.out.println("myFirstClassTestFour");
}

@Test(dependsOnMethods = {"myFirstClassTestFour"})
public void myFirstClassTestFive(){
    System.out.println("myFirstClassTestFive");
   }
}

第二类:

public class MySecondClassTest {

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

@Test(dependsOnMethods = {"mySecondClassTestOne"})
public void mySecondClassTestTwo(){
    System.out.println("mySecondClassTestTwo");
}

@Test(dependsOnMethods = {"mySecondClassTestTwo"})
public void mySecondClassTestThree(){
    System.out.println("mySecondClassTestThree");
}

@Test(dependsOnMethods = {"mySecondClassTestThree"})
public void mySecondClassTestFour(){
    System.out.println("mySecondClassTestFour");
}

@Test(dependsOnMethods = {"mySecondClassTestFour"})
public void mySecondClassTestFive(){
    System.out.println("mySecondClassTestFive");
    }
}

然后输出如下:

enter image description here

...我怎样才能将报告作为:

MyFirstClassTest
   myfirstClassTestOne
   myfirstClassTestTwo
   myfirstClassTestThree
   myfirstClassTestFour
   myfirstClassTestFive

MySecondClassTest
   mySecondClassTestOne
   mySecondClassTestTwo
   mySecondClassTestThree
   mySecondClassTestFour
   mySecondClassTestFive

注意 - 我需要dependsOnMethods并且obvs删除了所有的浏览器内容和实际的selenium东西

2 个答案:

答案 0 :(得分:1)

您的问题就是IntelliJ如何显示测试结果。 默认情况下,它按照完成的顺序显示测试。

如果您愿意,可以按字母顺序对其进行更改和排序:

enter image description here

可悲的是,IntelliJ没有按类名对测试进行分组(或者我没有找到方法)。

也许你应该在https://youtrack.jetbrains.com

上要求这个功能

答案 1 :(得分:0)

Steerpike,您可以尝试并行运行测试而不是类),因此对XML的轻微更改应该会为您提供所需内容:

    !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite1" verbose="1" parallel="tests" thread-count="2">

    <test name="parallel-running-test1">        
        <classes>
            <class name="com.mycompany.myproject.mypackage.MyFirstClassTest"/>       
        </classes>
    </test>

    <test name="parallel-running-test2">        
        <classes>       
            <class name="com.mycompany.myproject.mypackage.MySecondClassTest"/>
        </classes>
    </test>

</suite>

祝你好运!