2013-07-07 81 views
3

我必須自動化一個Web應用程序的測試套件,它允許用戶連接並與Dropbox帳戶同步。我正在使用Java Selenium Webdriver。如何在Selenium-Java Webdriver測試項目中指定執行Java類的順序

這裏我創建了這樣的測試類。

Class1.java - 用於檢查是否連接到Internet的測試用例。與Dropbox的

Class3.java-測試用例

Class2.java-測試用例標誌,以驗證網頁上顯示的Dropbox文件夾。

現在這些測試類應按此順序執行。

但是,當我將項目作爲JUnit測試運行時,它以其他順序執行這些測試。我沒有找到任何XML文件,以便我可以指定這些類的執行順序。

我也試過TestNG,因爲我讀了Here TestNG提供了一個屬性「維護順序」。

但它不工作。我對Selenium和Java Webdriver沒有太多經驗。

所以任何幫助都是可觀的。

Thanx提前。

回答

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 {} 
+0

Thanx Peter。它完美的作品。現在我只需要運行這個java類,並且所有指定的java測試都按照Suite.SuiteClasses中指定的順序運行。 – apatel

+0

請問一個問題:如果我有幾個測試套件,是否可以指定它們的執行順序? –

3

Peter Niederwieser是正確的。

此外,您可以設置測試的順序爲類(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"); 
    } 
} 
+0

是的,這也可以使用。但我必須在課堂上只寫一個測試用例。這就是爲什麼我沒有采用這種方法。 – apatel

+0

使用'@FixMethodOrder(MethodSorters.NAME_ASCENDING)'來控制測試執行順序的缺點是你必須用你的測試名稱('aaa_doThis','bbb_doThat'等)來玩技巧。但是,應該可以編寫一個方法分類程序,允許進行數字測試(例如使用註釋)。 –

1

加成Ittiel的帖子:

相反的: @FixMethodOrder(MethodSorters.NAME_ASCENDING ) 您可以使用: @FixMethodOrder(MethodSorters.JVM)

這樣,您不必使用測試名稱玩弄技巧。你只需要按照正確的順序安排你的測試。

這對我來說很好。感謝Ittiel!

相關問題