首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Babel模块-解析器不使用Mocha测试

Babel模块-解析器不使用Mocha测试
EN

Stack Overflow用户
提问于 2018-09-10 20:08:35
回答 1查看 652关注 0票数 1

我试着用摩卡做一些反应测试。我的react组件通过Babel的"babel-plugin-module-resolver": "^3.1.1",有别名,它们可以工作,但是在运行测试时不起作用。

以下是运行睾丸时的错误:

Error: Cannot find module 'Styles/dimensions'

以下是我的.babelrc吐露:

... "plugins": [ [ "module-resolver", { "root": ["."], "extensions": [".js", ".json", ".jsx", ".ts", ".tsx"], "alias": { "Styles": ["./app/react/styles"], } } ] ] ...

我的mocha-setup.js文件包括:

代码语言:javascript
复制
require('moment');
require('babel-plugin-module-resolver');
require('babel-polyfill');
require('babel-register')({
  only: /(node_modules\/|\.test.js)/,
});
require('ts-node').register({
  project: './app/tests/config/tsconfig.test.json',
});

require('./helpers');
require('./browser');

下面是我用来运行测试的命令:

cross-env NODE_PATH=./ NODE_ENV=test mocha 'app/react/**/*.test.{js,jsx}' --require ./app/tests/config/mocha-setup.js

关于如何让Mocha编译这些别名,有什么想法吗?没有别名的测试运行文件,但是在运行测试之前,Mocha似乎没有运行别名编译。

EN

回答 1

Stack Overflow用户

发布于 2022-04-02 20:47:08

我已经用.babelrc.js中的代码解决了这个问题:

代码语言:javascript
复制
const module_resolver =     [
  "module-resolver",
  {
    extensions: [".js", ".jsx", ".es", ".es6", ".mjs"],
    root: ["./"],
    alias: {
      "@store": "./src/store"      
    },
  },
];
const presets = ()=>{
  return [
        "@babel/preset-env",
        "@babel/preset-react"
    ]
}
const plugins = ()=>{
  let base = [
    ["@babel/plugin-proposal-class-properties"],
    ["@babel/transform-runtime"]
  ];
  if (process.env.NODE_ENV='test')
  {
    base.push(module_resolver);
  }
  return base;
}
let config = {
    presets: presets(),
    plugins: plugins()
};

  module.exports = config;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52264785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档