javascript - 如何在我的 ESM(ECMA 模块加载器)项目中使用 Cucumber?

标签 javascript cucumber es6-modules cucumberjs

我有一个简单的项目,基本上是......

export class Application{
  constructor(...){
    ...
  }
  async run(){
    console.log("I Ran!");
  }
}
我想使用 Cukes 运行它,所以我关注 these steps让这个工作 (注意 .cjs 扩展名表示节点它是一个 cjs 文件)
// features/basic.feature

Feature: Hello World
  Scenario: Hello World
    Given I start the app
    When it is running
    Then I see the console

// features/support/steps.cjs
const { Given, When, Then } = require("@cucumber/cucumber");

Given("I start the app", function () {
  // TODO: Setup child process
  return
});

When("it is running", function () {
  // TODO: Execute using Worker
  return
});

Then("I see the console", function () {
  // assert.equal(this.variable, number);
  return
});
我将使用 cucumber-js --require features/support/steps.cjs 执行此操作
但是现在我想导入应用程序并一步一步运行应用程序。由于我无法使用 .cjs 导入 ESM (.mjs) 文件,因此我不确定如何执行此操作。我尝试创建步骤文件的 .mjs 版本,但我也无法使其正常工作。我也试过cucumber-js --require-module features/support/steps.mjs但它仍然没有工作。
如何在 ESM 风格的项目中使用 Cukes?

最佳答案

据我所知,这仍然是一个问题。
有一个实验版本的 cukes 可以使用,它开始解决这些问题(cukes 版本 7.2.0),您可以开始使用它来查看是否可以解决您想要实现的更改。
但是,8.0.0 版即将推出,其中特别解决了许多此类问题。新版本将在接下来的几天内发布(手指交叉)。
以下是他们迄今为止为解决您遇到的问题所做的所有工作的链接:cucumber-js add ESM support (take 2)

关于javascript - 如何在我的 ESM(ECMA 模块加载器)项目中使用 Cucumber?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69622341/

相关文章:

javascript - 如何让滚动条在下面的情况下看到完整的内容?

javascript - 如何使用 DOM 获取跨度之间的值

cucumber 的特点——猜猜

ruby-on-rails - Cucumber/Capybara/Email 规范无法与 Selenium 驱动程序一起正常工作

javascript - twitter bootstrap typeahead(未定义的方法 'toLowerCase')

javascript - 添加将功能添加到现有自定义航点功能中的功能

java - 在日志上看不到 cucumber 片段

javascript - React Native 组件未在 map() 迭代器内渲染

javascript - 语法错误: import declarations may only appear at top level of a module

javascript - ES6 模块 - 为什么命名的 const 导出不是只读的