我试着用摩卡做一些反应测试。我的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文件包括:
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似乎没有运行别名编译。
发布于 2022-04-02 20:47:08
我已经用.babelrc.js中的代码解决了这个问题:
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;https://stackoverflow.com/questions/52264785
复制相似问题