我正在使我的应用程序自动化,我们为每项测试重复了一系列步骤。为了优化这一点,我所做的就是将这些初始步骤导出到一个单独的函数中,我在测试中将其调用。
以下是我的代码外观的示例:
// common-test file
class MyCommonTask {
async function commonSteps() {
describe('Run common steps', () => {
it('Step 1', () => { ... })
it('Step 2', () => { ... })
it('Step 3', () => { ... })
})
}
}
export const CommonTask = new MyCommonTask();
// My test file
import { CommonTask } from 'common-test';
const webDriver = ...;
describe('My Test', () => {
beforeEach(...)
it('Running common steps', async () => {
await CommonTask.commonSteps();
});
it('Pause', () => {
webDriver.sleep(2000);
})
})
问题是,pause
测试没有等待上一个it
完成。我怎样才能做到这一点?我以为it
等待上一个it
完成,但那没有发生。
我曾考虑使用webDriver.sleep(bigAmount)
,但这将是一个修补程序。有没有更好/适当的方法来处理它?</ p>
假设it
返回promise,我什至尝试遵循
describe('My Test', async () => {
beforeEach(...)
await it('Running common steps', async () => {
await CommonTask.commonSteps();
});
it('Pause', () => {
webDriver.sleep(2000);
})
})
但是仍然不起作用。 pause it
被立即调用。我什至尝试使用.then
,但从未调用其中的函数。
如果这是一个明显/天真的问题,我表示歉意!