gpt4 book ai didi

javascript - 使用 Globals.js 的每个测试用例的 beforeEach 和 AfterEach

转载 作者:行者123 更新时间:2023-11-29 18:46:14 24 4
gpt4 key购买 nike

所以,我有一个 globals.js 文件,我在其中提到了 beforeEach 和 afterEach,但我可以从这个链接中理解 Nightwatch Globals ,beforeEach 和 afterEach 在测试套件(单个 Js 文件)之前和之后被调用一次。但是在我的框架中,我在单个 js 文件(或测试套件)中有多个测试用例,我想在每个测试用例之前和之后调用 beforeEach 和 afterEach。无论如何要实现这一目标?下面是我的 globals.js 文件:

module.exports = {
asyncHookTimeout: 40000,

beforeEach: function (browser, done) {
// browser.maximizeWindow();
// browser.deleteCookies();
browser.perform(function () {
console.log('Inside BeforeEach');
done();
});
}

afterEach: function (browser, done) {
browser.end(function () {
console.log("Inside After Each");
done();
});
},
};

最佳答案

当然有!只需使用臭名昭著的 Nightwatch test hooks .

  • 如果您想过滤您的测试套件,那么正如您所指出的,我们将使用 global testhooks .
  • 如果您想过滤您的测试用例,那么我们将使用testhooks

示例(您的测试文件应如下所示):

module.exports = {

before(browser) {
// > this will get run only ONCE, before all the tests <
},
beforeEach(browser) {
// > this will get run before every test case <
}

tags: ['your', 'tags', 'go', 'here'],
'Test Case No.1': (browser) => {
// > this test does something here <
},
'Test Case No.2': (browser) => {
// > this test does something else here <
},
'Test Case No.3': (browser) => {
// > this test does something else here <
},

afterEach(browser) {
// > this will get run after every test case <
},
after(browser) {
// > this will get run ONCE, after all tests have run <
}
};

最后,引用文档:

The before and after will run before and after the execution of the test suite respectively (in our case, the test-file), while beforeEach and afterEach are ran before and after each test case (test step).


LE:@AlapanDas 想要的是定制 Nightwatch 测试运行器处理测试级 Hook 的方式。这当然是可行的,但是很脏。您必须从以下文件重写 Hook 逻辑:

守夜人@v0.9.x:

  • testcase.js(路径:/nightwatch/lib/runner/testcase.js);
  • testsuite.js(路径:/nightwatch/lib/runner/testsuite.js);

守夜人@v1.0.x:

  • /hooks 文件夹中的每个 {hookName}.js 文件(路径:/nightwatch/lib/testsuite/hooks/*.js);

不过,还是可以在这里做出妥协!试着从你的之前中找到常见的、重复的步骤/说明after 等 Hook 并将该逻辑提取到 /custom_commands 文件中。这将压缩您的测试文件,并将登录与 Hook 分离。从长远来看,这还将在维护 Hook 时提供单点更改的优势。

关于javascript - 使用 Globals.js 的每个测试用例的 beforeEach 和 AfterEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53782850/

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