Javascript jasmine IT块在'之前执行;之前';块

Javascript 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

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

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

我得到的电流输出是步骤2、步骤0、步骤1


我所期望的是步骤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