簡體   English   中英

在摩卡的所有測試用例之前掛鈎之前

[英]before hook before all test cases in Mocha

我有一個“之前”的鈎子,我想在所有測試用例(文件)之前運行,理想的情況是只運行一次,無論有多少測試用例和我運行的測試用例。

現在我所做的是將“before”掛鈎放在一個單獨的文件中,並在每個測試文件的開頭執行“require(”../ beforeAll.js“)”

//beforeAll.js
before('description', function(done) {
    //do something
    done()
}


//all test files
require('../beforeAll.js')
//test 
//......

我認為每次測試文件運行時都會運行“之前”掛鈎,但我不知道更好的方法。 但是,當我運行所有測試用例時,“before”鈎子實際上只運行一次。

所以我的問題是,為什么“之前”鈎子只運行一次? 在這種情況下執行此操作的最佳方法是什么(僅運行一次)?

根據MochaJS關於鈎子的文檔

before(function() {})在塊中的所有測試之前運行。
beforeEach(function() {})在塊中的每個測試之前運行。

如果要在測試開始時運行單個函數,請使用before()
如果要在每個測試之前運行函數,請使用beforeEach()

當您使用require() ,您實際上是在當前測試中“包含”該邏輯,就好像您正在復制粘貼所需文件一樣。 考慮到你使用before() ,它在第一次測試中運行。 當第二次測試到來時,它會看到before()已經執行,因此它不會再次執行。

希望這可以幫助! :)

您可以使用mocha -r( - require)參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM