2016-10-05 46 views
3

我一直在使用Java和Selenium以及JUNIT來創建測試用例。我一直在逐步測試應用程序的不同部分。通過優先測試功能逐步測試我的應用程序?

IE:頁面導航,然後頁面導航,然後點擊一個特定的按鈕。

在這種情況下,我有2個測試功能:

@Test 
public void pageNavigation(){...} 

@Test 
public void buttonClickOnPage(){ 
    pageNavigation(); 

    WebElement ele = ....; 
} 

這些不一定以相同的順序運行,所以它可能運行buttonClickonPage第一。我希望建立一個優先隊列,以便對應用程序進行廣度優先測試,測試所有簡單案例,然後移動更廣泛的案例。

我知道這些情況是獨立運作的,這很好,但有一種情況可能需要使用另一種情況,並由此構建。

有沒有辦法在Java Selenium和Junit範圍內執行此操作。

謝謝

+0

您可能會考慮使用Geb和Spock(基本上是Selenium和JUnit之上的DSL),這些功能彙集了大部分功能,並使您可以按照所詢問的方式進行組合。 – chrylis

+0

查看https://github.com/junit-team/junit4/wiki/Test-execution-order ...在課堂上使用@FixMethodOrder(MethodSorters.NAME_ASCENDING)。 – Grasshopper

回答

0

我已經使用註釋hiearchically延長我的優先測試類。

public interface High extends Medium 
public interface Medium extends Low 
public interface Low 

測試類是使用另一個Junit annotationorg.junit.experimental.categories.Category這樣

@Category(testclient.priority.Medium.class) 
public class MyMediumTest { 
... 
} 

您包括/使用行家或容易的gradle排除的類別進行註釋。這是一個example。它也可能在方法級別上工作。

+0

我給了這個鏡頭,看看是否有效,因爲這將是一個非常簡單的方法來做到這一點。我希望能做一些像'@Test(優先級:1)'的東西,但這也可以做到這一點。我希望有更多的桶,但我可以擴展你的interfact結構,以超過3個對象。 – Fallenreaper