首页 > 解决方案 > 找不到带有 **/*.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我也想运行的文件。

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

.babelrc的是:

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

标签: javascriptnode.jsbabeljsglobnode.js-tape

解决方案


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

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

推荐阅读