gpt4 book ai didi

javascript - Jasmine IT block 在 'beforeAll' block 之前执行

转载 作者:行者123 更新时间:2023-11-29 23:28:05 27 4
gpt4 key购买 nike

在 VSCode 的 node.js 项目中,我试图在运行规范之前读取配置信息。但是我的规范总是在我的“beforeAll” block 之前首先执行。

beforeAll(() => {
console.log('Step0………..: ');
return new Promise(resolve => {
console.log('Step1………..: ');

browser.getProcessedConfig().then((config) => {
console.log('environment 12: ' );
resolve(true);
});
});
});

describe('*************************Executing TestSuite************************', function () {
console.log('Step2………..: ');
it("should support async execution of test preparation and expectations", function() {
expect(3).toBeGreaterThan(0);
});
});//describe

我尝试简化代码以只保留一个 expect 语句,但它仍然是一样的。

我得到的当前输出是第 2 步,第 0 步,第 1 步

我期待的是第 0 步、第 1 步、第 2 步

最佳答案

问题在于您的 beforeEach 函数中包含异步代码:您的 Promise 在开始运行您的第一个测试之前未解析。

Jasmine has a utility to handle asynchronous behaviour

如果您将 done 参数传递给 beforeEach 调用,您就可以在 promise 解决方案中调用此 done() 函数。以您的示例为例:

beforeAll( (done) => {
console.log('Step0………..: ');
return new Promise(resolve => {
console.log('Step1………..: ');

browser.getProcessedConfig().then((config) => {

console.log('environment 12: ' );
resolve(true);
done()
});
});

});

describe('*************************Executing TestSuite************************', function () {

console.log('Step2………..: ');

it("should support async execution of test preparation and expectations", function() {
expect(3).toBeGreaterThan(0);
});

});//describe

关于javascript - Jasmine IT block 在 'beforeAll' block 之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344674/

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