我必须自动化一个Web应用程序的测试套件,该应用程序允许用户连接并与他们的Dropbox帐户同步。我正在使用Java Selenium Webdriver。
我在这里创建了这样的测试类。
Class1.java - 用于检查是否连接到Internet的测试用例。
Class2.java-使用Dropbox登录的测试用例
Class3.java-用于验证Dropbox文件夹是否显示在网页上的测试用例。
现在这些测试类应按此顺序执行。
但是当我以JUnit测试运行项目时,它会以其他顺序执行这些测试。我没有找到任何XML文件,因此我可以指定这些类的执行顺序。
我也尝试过TestNG,因为我读了Here,TestNG提供了一个属性“preserve-order”。
但它没有用。我对Selenium和Java Webdriver没有多少经验。
所以任何帮助都会很明显。
提前完成。
答案 0 :(得分:4)
此外,您可以设置在类中运行的测试顺序(Junit 4.11):
import org.junit.runners.MethodSorters;
import org.junit.FixMethodOrder;
import org.junit.Test;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class SampleTest {
@Test
public void firstTest() {
System.out.println("first");
}
@Test
public void secondTest() {
System.out.println("second");
}
}
答案 1 :(得分:1)
您可以使用JUnit测试套件:
import org.junit.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({Class1.class, Class2.class, Class3.class})
public class DropboxWorkflow {}
答案 2 :(得分:1)
除了Ittiel的帖子:
而不是: @FixMethodOrder(MethodSorters.NAME_ASCENDING) 您可以使用: @FixMethodOrder(MethodSorters.JVM)
这样,您就不必使用测试名称来玩弄技巧。您只需按正确的顺序安排测试。
这对我来说很好。感谢Ittiel!
答案 3 :(得分:0)
试试这个
@Test(dataProvider = "Login", priority = 1)
public void login()
{
//code
}
@Test(dataProvider = "Search", priority = 2)
public void search()
{
//code
}