我正在使用 testcafe 进行 GUI 测试。我在后台运行 Node 服务器,然后开始测试。当我使用 testcafe API 浏览 GUI 时,一切都很好,但是当我尝试调用更改数据库的函数(在测试中硬编码)时,数据库根本不受影响。 这是我的代码:
fixture('Permissions')
.page('https://localhost');
test('go to permissions', async browser => {
await onlineFormsController.createOnlineFrom("OMRI",'NEWFORM',async ()=>{
await browser.click('#editUsersTree');
await browser.click('#loadDefaultTree');
await browser.wait(500);
await browser.pressKey('enter');
await browser.wait(500);
await browser.pressKey('enter');
await browser.click('#saveTree');
await browser.pressKey('enter');
await browser.navigateTo('https://localhost/Home');
await browser.wait(5000);
});
});
函数onlineFormsController.createOnlineFrom
应该在我的数据库中创建新表单,但什么也没发生。它与 testcafe
测试分开运行良好(使用 mocha
进行测试,效果很好),但是当我使用 testcafe
运行测试时就好像这一行被忽略或根本没有任何效果。
有什么想法导致这个问题吗?
最佳答案
TestCafe 不应干扰 MongoDB 工作。
我向您推荐以下内容:
- 确保
createOnlineFrom
返回一个Promise
对象; - 不要传递带有测试操作作为参数的函数。由于
createOnlineFrom
返回一个Promise
对象,因此您可以以更易读的方式组织代码:
test('go to permissions', async browser => { await onlineFormsController.createOnlineFrom("OMRI",'NEWFORM'); await browser.click('#editUsersTree'); });
如果这些建议没有帮助,请提供 createOnlineFrom
函数的完整代码。
关于node.js - MongoDB 不会更新 testcafe 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078330/