测试用例在完成 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