找不到带 **/* 的模块。test.js

Cannot find module with **/*.test.js

我正在尝试为我的 Next.js 项目设置测试。我想用基于磁带的 RITEway 测试它。我想要一个 test 命令来查找我的 src/ 文件夹中以 .test.js.

结尾的所有文件

这是我想出的推荐:

"test": "NODE_ENV=test node -r @babel/register src/**/*.test.js",

我收到错误:

Error: Cannot find module '/path/to/project/src/**/*.test.js'

如何让节点在我的 src/ 文件夹中找到所有以 .test.js 结尾的文件?

额外上下文:

我的测试文件位于 src/features/<feature>/<feature.test.js>,例如:

"test": "NODE_ENV=test node -r @babel/register src/features/home/home-page-component.test.js",

可以找到单个文件并 运行 它。

"test": "NODE_ENV=test node -r @babel/register src/**/**/*.test.js",

可以找到功能中的所有文件夹,但会忽略像 src/<file>.test.js 这样的文件,我也想 运行。

我必须安装 @babel/register@babel/core 以便 Node 处理绝对导入和更新的语法。

我的.babelrc是:

{
  "env": {
    "test": {
      "plugins": [
        [
          "module-resolver",
          {
            "root": [
              "."
            ],
            "alias": {
              "features": "./src/features"
            }
          }
        ]
      ]
    }
  },
  "presets": [
    [
      "next/babel"
    ]
  ],
  "plugins": []
}

正如 Jon Sharpe 所说,您必须将正则表达式输入 riteway

"test": "NODE_ENV=test riteway -r @babel/register 'src/**/*.test.js'",