1
我想登錄一次,然後在關閉瀏覽器之前運行幾個場景(可以說7場景)。運行一次登錄場景,然後運行多個場景
我用背景,而不是有一個給定我登錄在每個場景,但似乎每次場景運行它首先登錄開始。
這會減慢我的測試。
什麼,我想做的事:
登錄和相同的瀏覽器窗口上運行多個場景然後將其關閉,一旦他們這樣做。
我想登錄一次,然後在關閉瀏覽器之前運行幾個場景(可以說7場景)。運行一次登錄場景,然後運行多個場景
我用背景,而不是有一個給定我登錄在每個場景,但似乎每次場景運行它首先登錄開始。
這會減慢我的測試。
什麼,我想做的事:
登錄和相同的瀏覽器窗口上運行多個場景然後將其關閉,一旦他們這樣做。
你要找的是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等)
希望這可以讓你在正確的道路上的不同用戶/角色!
它讓我走進了正確的道路。謝謝。這將會產生巨大的影響。 – fancypi
做到這一點的另一種方式將包括:在功能級別的Backgroung。 – fancypi
@fancpi:Nope,有點違反直覺,背景*在特徵*的每個場景之前執行,而不是每個特徵一次。背景是減少重複步驟定義的一種方法,但它們不會消除步驟本身的執行。 – Deltics