2014-09-12 36 views
0

我正在写几个不同的硒测试作为页面对象,并且希望能够在单个中心类中运行它们。我已经想出了如何从一个不同的类运行一个测试,但是当我尝试运行多个测试时,只有一个测试会完成。从一个类(java)运行多个硒测试

我试着依次使用org.junit.runner.JUnitCore.main(“com.etc”)运行它们,但在 测试第一个类后,整个测试结束。在代码:

org.junit.runner.JUnitCore.main("com.etc.test.HomePageCheck"); 
System.out.print("test"); 

打印命令永远不会运行,即使在测试运行成功

我也试图创建多个线程,但一旦所有测试完成,整个过程似乎要结束了,离开其余的测试挂起。

重申,我有Class1与几个jUnit测试和Class2与其他jUnit测试。我希望能够运行一个Class3,它将同时运行Class1和Class2,并完成所有其他类的测试。 我不认为我想使用Selenium Grid,我宁愿只是在机器上本地运行测试,无论是按顺序,还是最好是并行运行。

+1

Maybe Suite是你正在寻找的:https://github.com/junit-team/junit/wiki/Aggregating-tests-in-suites 你也应该发布一些你的代码,所以我们可以看看你做错了什么。 – user1071777 2014-09-12 19:37:58

+0

硒电网可能是一种选择。 http://docs.seleniumhq.org/docs/07_selenium_grid.jsp – bcar 2014-09-13 18:28:23

回答

0

我想通了,这里是代码(第二行是关键,其他都只是为了让输出)

Result aTest; 
aTest= org.junit.runner.JUnitCore.runClasses(new Class<?>[] 
{ 
    Events.class,SearchCheck.class}); 
    for(Failure i:aTest.getFailures()) 
    { 
     System.out.println(i.getException()+"\nat: "+i.getDescription()); 
     System.out.println("trace: "+i.getTrace()); 
     System.out.println(); 
    } 
} 

谢谢大家

编辑:实际测试套件也运作非常,和可能是更好的方法来做到这一点。