gpt4 book ai didi

javascript - 在 Mocha 中所有测试用例之前的钩子(Hook)之前

转载 作者:行者123 更新时间:2023-12-02 06:28:49 25 4
gpt4 key购买 nike

我有一个“之前”钩子(Hook),我想在所有测试用例(文件)之前运行它,理想的情况是运行一次且只运行一次,无论我运行多少测试用例和哪个测试用例。

现在我要做的是把那个“之前”钩子(Hook)放在一个单独的文件中,并在每个测试文件的开头执行“require(”../beforeAll.js“)”,

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


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

我认为每次运行测试文件时都会运行“之前” Hook ,但我不知道更好的方法。但是,当我运行所有测试用例时,“之前” Hook 实际上只运行一次。

所以我的问题是,为什么“之前”钩子(Hook)只运行一次?在这种情况下最好的方法是什么(只运行一次)?

最佳答案

根据 MochaJS's documentation on hooks :
before(function() {})在 block 中的所有测试之前运行。beforeEach(function() {})在 block 中的每个测试之前运行。

如果您想在测试开始时运行单个函数,请使用 before() .
如果您想在每次测试之前运行一个函数,请使用 beforeEach() .

当您使用 require() ,您实际上是在当前测试中“包含”该逻辑,就好像您正在复制粘贴所需的文件一样。考虑到您使用 before() ,它在第一次测试中运行。到第二次测试时,它看到 before()已经执行,所以不会再次执行。

希望这可以帮助! :)

关于javascript - 在 Mocha 中所有测试用例之前的钩子(Hook)之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46799242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com