当需要变量时,cucumber-js 找不到步骤定义

cucumber-js cannot find the step definition when a variable is needed

我有一个功能

// test.feature
    Feature: Test1

      Scenario: To test variables
         Given When no variable succeed
         When When value blah and value blah3


    // test_steps.js
    const { Before, Given, When, Then } = require('cucumber');
const assert = require('assert');


Given(/^When no variable succeed$/, function () {
    assert.equal(1,1)
  });

When(/^When value {string} and value {string}$/, function (val1, val2) {
    return 'pending';
});

结果是什么

> Scenario: To test variables #
> tests/bdd/features_cucumber/test.feature:3    ✔ Given When no variable
> succeed # tests/bdd/features_cucumber/step_definitions/test_steps.js:5
> ? When When value blah and value blah3
>        Undefined. Implement with the following snippet:
> 
>          When('When value blah and value blah3', function () {
>            // Write code here that turns the phrase above into concrete actions
>            return 'pending';
>          });

您必须在特征文件中的变量周围添加引号 When When value "blah" and value "blah3"

并且您不需要在步骤定义中使用正则表达式。 When('When value {string} and value {string}', function (val1, val2) {应该做

如果您在步骤定义中使用正则表达式,则必须为您的值使用捕获组。例如: When(/^When value "([^"]*)" and value "([^"]*)"$/, function (val1, val2) {