[英]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.