Хорошо, после расследования я постараюсь ответить на свой вопрос, как только решил его.
Во-первых, ошибка : превышено время ожидания 2000 мс. является распространенной проблемой, просто превышено время ожидания, но тесты не выполнялись (потому что им нужно больше времени для выполнения). Это документировано на stackoverflow довольно хорошо .
Следующая проблема заключается в том, что Mocha ожидает выполнения обещания или выполнения функции для завершения теста. Когда я написал
it('should do', async function(done) {
try {
let driver = new Builder().forBrowser('firefox').build();
await driver.get('http://www.google.com/ncr');
const title = await driver.getTitle();
assert.equal(title, 'Google');
} catch(err) {
console.log(err);
} finally {
await driver.quit();
}
done();
})
Он не получил ни обещания, ни выполненного, потому что он не работает с механизмом асинхронного ожидания / ожидания , только со стандартными обещаниями.
Итак, я удалил готово, а также полностью удалил блок try-catch , теперь он наконец-то работает!
Финальный код
describe('Test Suite', function() {
this.timeout(0);
before(async function() {
this.driver = await new Builder().forBrowser('firefox').build();
});
it('should do', async function() {
await this.driver.get('http://www.google.com/ncr');
const title = await this.driver.getTitle();
assert.equal(title, 'Google1121312213');
})
after(async function() {
this.driver.quit();
})
});