找不到带有** / *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'

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

加上下文:

我的测试文件位于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才能处理绝对导入和更新的语法。

我的.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'",