2017-01-27 37 views
2

我想了解如何先在一个类中运行所有的TestNG测试,然后再在第二个类中运行所有的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"); 
    } 
} 

类2:

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 

NB - 我需要dependsOnMethods并有obvs删除了所有浏览器东西和实际的硒东西

+0

你如何执行代码?我试着用你的代码来显示你所需要的报告。 – NarendraR

回答

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> 

祝您好运!

1

你的问题只是IntelliJ显示测试结果的方式。 默认情况下,它按照它们完成的顺序显示测试。

你可以改变它,如果你喜欢按字母顺序进行排序:

enter image description here

可悲的是,的IntelliJ不是由类名分组测试(或我没有找到这样做的方式) 。

也许你应该问的功能上https://youtrack.jetbrains.com