2015-11-06 60 views
2

在每個天賦我有beforeEachafterEach語句。是否有可能在全球範圍內添加它以避免規範之間的代碼重複?全球beforeEach和afterEach在量角器

+2

您可以根據您的要求使用其中任何一種。 'onPrepare()','onComplete()','onCleanUp()'&'afterLaunch()'。請在這裏https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L200 –

+0

@PriyanshuShekhar,您的評論似乎是質量..你要補充一點,作爲一個答案。 – sircapsalot

+0

@Michal有人把它作爲答案。 –

回答

3

beforeEach()afterEach()的用途功能是添加一個重複代碼塊,每次啓動或完成每個規格時都需要執行(it)。還有其他的方法來添加通用代碼,以避免代碼重複,這裏有幾個 -

  • 如果你有一段代碼,你將需要開始一個測試套件(describe)之前只運行一次,那麼你就可以使用茉莉花提供的功能beforeAll()afterAll()
  • 如果您想要在啓動所有測試腳本之前運行一段只需運行一次的代碼,請將其添加到onPrepare()onComplete()函數中。
  • 如果你想添加一段代碼應該運行量角器已經開始實例化本身,甚至之前或已自行關閉後,再使用beforeLaunchafterLaunch

所以這一切都取決於你想要使用它們的場景。希望它有幫助。

+1

以上都不解決問題的任擇議定書,這也是我的:你是怎麼運行的每個規格的前一段代碼,但只寫一次(即沒有重複它在每個規格文件)? –

+0

嗨@OvidiuDolha,OP的問題和你的問題的答案實際上是「否」,用隱喻來寫,所以我給了幾個選項。據我所知,這個功能根本不在茉莉花裏。作爲解決方法的一部分,您可以創建一個全局函數,然後在每個測試腳本文件的beforeEach()中調用它。 –

+0

羅傑,有道理;) –