测试用例在完成 beforeAll 之前执行。?

Posted

技术标签:

【中文标题】测试用例在完成 beforeAll 之前执行。?【英文标题】:test cases are executing before completing the beforeAll.? 【发布时间】:2021-11-15 16:19:43 【问题描述】:

我正在尝试在完成 beforeAll 挂钩后运行测试用例。

但它没有按预期工作,测试用例在完成 beforeAll Hooks 之前运行。如何解决这个问题?

 describe('Testing : Protein superposition LOGIN', async () => 
    beforeAll(async function () 
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 3500000;
        await browser.get(loginData.URL);
        await browser.refresh();
        await browser.waitForAngularEnabled(true);
        await page.funcLogin(loginData.VALID.USERNAME, loginData.VALID.PASSWORD);
        await browser.waitForAngularEnabled(false);
        expect(await userLoginStatus.isPresent()).toBe(true);
        console.log('LOGIN Status : Ok');

    );

    it('Check Login', async function () 

        try 
            var temp = await alerts.getPageHeaderName();
            console.log("Temp Detail", temp);
            // ...
            // ....
         catch (e) 

            throw new Error(e);
        

    )
);

【问题讨论】:

【参考方案1】:

我想我之前遇到过类似的问题,我使用了Jasmine提供的done函数。

// remove async on the describe callback because it is doing nothing I think
describe('Testing : Protein superposition LOGIN', /* async */ () => 
   // add done argument inside of the function parameter 
   beforeAll(async function (done) 
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 3500000;
        await browser.get(loginData.URL);
        await browser.refresh();
        await browser.waitForAngularEnabled(true);
        await page.funcLogin(loginData.VALID.USERNAME, loginData.VALID.PASSWORD);
        await browser.waitForAngularEnabled(false);
        expect(await userLoginStatus.isPresent()).toBe(true);
        console.log('LOGIN Status : Ok');
        // call done to let jasmine know I am done with this block now
        done();
    );

    it('Check Login', async function () 

        try 
            var temp = await alerts.getPageHeaderName();
            console.log("Temp Detail", temp);
            // ...
            // ....
         catch (e) 

            throw new Error(e);
        

    )
);

详细了解完成回调here。

【讨论】:

以上是关于测试用例在完成 beforeAll 之前执行。?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法为 JUnit 测试用例在内存中运行 MySQL?

Junit测试用例在STS中成功运行,但无法通过Jmeter运行。

NSOperationQueue 和 ASIHTTPRequest

10_Pytest框架

在beforeAll中创建一次TestBed之后,无法在beforeEach中重置提供程序

丢帧测试用例在 Qual-E 中失败