如何使用 WebStorm 在 TypeScript 而不是 JavaScript 中创建 Cucumber 步骤定义文件?
How can I use WebStorm to create a Cucumber step definition file in TypeScript instead of JavaScript?
我正在使用 Cucumber.js 构建一个新的 e2e 测试套件,我想将 TypeScript 用于我的步骤文件。当我创建一个新步骤并按 Alt+Enter
让 WebStorm 生成一个新步骤文件时,我看到的唯一选项是创建一个 JavaScript 文件。
有谁知道如何在 TypeScript 中创建一个新的步骤文件?
Webstorm 似乎没有为文件类型 "TypeScript" 提供向导,因此您可能需要手动创建步骤定义文件。
对于 Simple Math Example,可能的 TS 步骤定义文件可能如下所示:
import * as cucumber from "cucumber";
module.exports = function () {
// Assign this to a typed variable so we have type-safe access
let sd: cucumber.StepDefinitions = this;
// The common variable is simply kept in function scope here
let variable: number = 0;
sd.Given(/^a variable set to (\d+)$/, (value: string) => {
variable = parseInt(value);
});
sd.When(/^I increment the variable by (\d+)$/, (value: string) => {
variable += parseInt(value);
});
sd.Then(/^the variable should contain (\d+)$/, (value: string) => {
if (variable != parseInt(value))
throw new Error('Variable should contain '+value
+ ' but it contains ' + variable + '.');
});
};
将此内容放入例如features/step_definitions/mathSteps.ts 并将 the example 中的功能代码粘贴到名为 e.g. 的文件中features/math.feature 你应该有一个 运行 例子。
我正在使用 Cucumber.js 构建一个新的 e2e 测试套件,我想将 TypeScript 用于我的步骤文件。当我创建一个新步骤并按 Alt+Enter
让 WebStorm 生成一个新步骤文件时,我看到的唯一选项是创建一个 JavaScript 文件。
有谁知道如何在 TypeScript 中创建一个新的步骤文件?
Webstorm 似乎没有为文件类型 "TypeScript" 提供向导,因此您可能需要手动创建步骤定义文件。
对于 Simple Math Example,可能的 TS 步骤定义文件可能如下所示:
import * as cucumber from "cucumber";
module.exports = function () {
// Assign this to a typed variable so we have type-safe access
let sd: cucumber.StepDefinitions = this;
// The common variable is simply kept in function scope here
let variable: number = 0;
sd.Given(/^a variable set to (\d+)$/, (value: string) => {
variable = parseInt(value);
});
sd.When(/^I increment the variable by (\d+)$/, (value: string) => {
variable += parseInt(value);
});
sd.Then(/^the variable should contain (\d+)$/, (value: string) => {
if (variable != parseInt(value))
throw new Error('Variable should contain '+value
+ ' but it contains ' + variable + '.');
});
};
将此内容放入例如features/step_definitions/mathSteps.ts 并将 the example 中的功能代码粘贴到名为 e.g. 的文件中features/math.feature 你应该有一个 运行 例子。