我有一个量角器-黄瓜框架,其步定义按照以下步骤进行结构化:https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/step_definitions.md
我使用return
并将诺言链接在一起。最近,我遇到了一种称为async
函数的不同语法。但是,当我尝试将步骤定义转换为异步时,使用module.exports
和require()
的框架中的所有帮助文件都会显示以下警告:
[ts]文件是CommonJS模块;可以将其转换为ES6模块。
运行测试用例时,由于错误导致我无法访问这些帮助文件,因此我的测试用例失败。就像我的页面对象文件一样,我无法从测试中访问它们。我认为它们不会像以前那样被导出。
有人可以建议我如何将测试用例更改为异步语法而不破坏它们吗?如何解决上述问题,而又不会大幅度干扰我的测试。
添加代码 这是我更改之前的步骤定义中的步骤 让{给定,然后,当} = require('cucumber');
Given(/^I am on the "([^"]*)" page$/, function (home) {
home = this.url.FDI_HOME;
return browser.get(home);
});
在将其更改为异步函数后,这是一个步骤定义
let { Given, Then, When } = require('cucumber');
Given(/^I am on the "([^"]*)" page$/, async function (home) {
home = this.url.HOME
await browser.get(home);
});
我将以类似的方式更改其他步骤。当我尝试运行上述步骤时出现问题,它无法说明它无法访问this.url.HOME。我还有另一个文件来提供URL,称为urls.js看起来像这样
let targetStore = browser.params.store || 'bestbuy';
let FDI_HOST = browser.params.fdi;
module.exports = {
HOME Page: 'https://homepage.com',
Shop_Page: 'https://shop.com',
storeLink: `http://www.${targetStore}.com`,
};
我在VS代码中的“ module.exports”一词下看到三个点,当我将其悬停在它上面时,它显示错误消息:[ts] File是CommonJS模块;可以将其转换为ES6模块。
我试图找到解决方法,但未能成功解决。如果我将语法用作“ async()=> {}”,则测试用例会失败,但是当我使用“ async function(){}”时,则通过了一些步骤,但没有通过其他步骤。
答案 0 :(得分:0)
这些是建议/提示。它们从视觉上表明vscode可以执行可能重构/改善代码的操作,但不会被视为错误。
您可以通过将"javascript.suggestionActions.enabled": false
添加到用户/工作区设置来禁用它们。