Javascript jasmine IT块在'之前执行;之前';块
在VSCode中的node.js项目中,我试图在运行规范之前读取配置信息。但是我的规范总是在我的“beforeAll”块之前首先执行 我试图简化代码,只保留一个expect语句,但它仍然是一样的 我得到的电流输出是步骤2、步骤0、步骤1Javascript jasmine IT块在'之前执行;之前';块,javascript,node.js,jasmine,protractor,Javascript,Node.js,Jasmine,Protractor,在VSCode中的node.js项目中,我试图在运行规范之前读取配置信息。但是我的规范总是在我的“beforeAll”块之前首先执行 我试图简化代码,只保留一个expect语句,但它仍然是一样的 我得到的电流输出是步骤2、步骤0、步骤1 我所期望的是步骤0、步骤1、步骤2问题在于beforeach函数中包含异步代码:在开始运行第一个测试之前,您的承诺无法解决 如果在每次调用之前将done参数传递给beforeach,则可以在承诺的解决方案内调用此done()函数。 以你为例: beforeAl
我所期望的是步骤0、步骤1、步骤2问题在于beforeach函数中包含异步代码:在开始运行第一个测试之前,您的承诺无法解决 如果在每次调用之前将
done
参数传递给beforeach,则可以在承诺的解决方案内调用此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
根据jasmine文档,生成的输出是正确的。IT块中的代码在完成之前不会执行。但是如果beforeAll有任何承诺,那么我们需要传递done关键字,让执行等待beforeAll异步操作完成,然后再执行它。我运行了上面的代码。它对我不起作用。它打印旧的结果。如果不使用嵌套的
承诺
(只需使用browser.getProcessedConfig),您不需要在每个仍然不起作用之前从您的返回一个承诺
。也许你可以用工作代码更新你的答案。谢谢。
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