2013-01-24 152 views
1

我想登錄一次,然後在關閉瀏覽器之前運行幾個場景(可以說7場景)。運行一次登錄場景,然後運行多個場景

我用背景,而不是有一個給定我登錄在每個場景,但似乎每次場景運行它首先登錄開始。

這會減慢我的測試。

什麼,我想做的事:

登錄和相同的瀏覽器窗口上運行多個場景然後將其關閉,一旦他們這樣做。

回答

1

你要找的是Specflow Hooks。

https://github.com/techtalk/SpecFlow/wiki/Hooks

您將無法以指定用作背景中的一步,而不是你會標記每個您需要登錄,以便情景「伐木」。

例子:

@alreadyLoggedIn 
Scenario: user can see XYZ 
    Given... 

@alreadyLoggedIn 
Scenario: user can see ABC 
    Given... 

然後你只需要「登錄」到指定代碼飾有BeforeFeature屬性的方法內。此方法只能針對特徵中的任何場景運行一次。

[BeforeFeature("alreadyLoggedIn")] 
public void BeforeFeatureLoggedIn() 
{ 
    // write code to log the person in 
} 

如果您有需要測試,只需創建單獨的標籤(即adminAlreadyLoggedIn,salesAlreadyLoggedIn等)

希望這可以讓你在正確的道路上的不同用戶/角色!

+0

它讓我走進了正確的道路。謝謝。這將會產生巨大的影響。 – fancypi

+0

做到這一點的另一種方式將包括:在功能級別的Backgroung。 – fancypi

+0

@fancpi:Nope,有點違反直覺,背景*在特徵*的每個場景之前執行,而不是每個特徵一次。背景是減少重複步驟定義的一種方法,但它們不會消除步驟本身的執行。 – Deltics

相關問題