当前位置: 首页 > 面试题库 >

在Mocha测试中使用Webpack别名

高迪
2023-03-14
问题内容

我正在使用React / Redux / Webpack开发一个可运行的Web应用程序,现在开始将测试与Mocha集成在一起。

我遵循Redux文档中有关编写测试的说明,但是现在我的webpack别名遇到了问题。

例如,看看我的动作创建者之一的此测试的imports部分:

import expect       from 'expect'                 // resolves without an issue
import * as actions from 'actions/app';           // can't resolve this alias
import * as types   from 'constants/actionTypes'; // can't resolve this alias

describe('Actions', () => {
  describe('app',() => {
    it('should create an action with a successful connection', () => {

      const host = '***************',
            port = ****,
            db = '******',
            user = '*********',
            pass = '******';

      const action = actions.createConnection(host, port, db, user, pass);

      const expectedAction = {
        type: types.CREATE_CONNECTION,
        status: 'success',
        payload: { host, port, database, username }
      };

      expect(action).toEqual(expectedAction);
    });
  });
});

正如评论所暗示的那样,mocha在引用别名依赖项时无法解析我的导入语句。

因为我还是Webpack的新手,所以这是我的webpack.config.js

module.exports = {
  devtool: 'eval-source-map',
  entry: [
    'webpack-hot-middleware/client',
    './src/index'
  ],
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    publicPath: '/static/'
  },
  resolve: {
    extensions : ['', '.js', '.jsx'],
    alias: {
      actions: path.resolve(__dirname, 'src', 'actions'),
      constants: path.resolve(__dirname, 'src', 'constants'),
      /* more aliases */
    }
  },
  plugins: [
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],
  module: {
    loaders: [{
      test: /\.js$/,
      loaders: ['babel'],
      exclude: /node_modules/,
      include: __dirname
    }]
  }
};

另外,我正在使用命令npm test运行mocha,这是我在中使用的脚本package.json

 {   
   "scripts": {
     "test": "mocha ./src/**/test/spec.js --compilers js:babel-core/register --recursive"
   }
 }

所以这就是我卡住的地方。 我需要在运行时将webpack的别名包含到mocha中。


问题答案:

好的,我意识到我所别名的所有东西都在src/目录中,因此我只需要修改npm run test脚本即可。

{   
  "scripts": {
    "test": "NODE_PATH=./src mocha ./src/**/test/spec.js --compilers js:babel-core/register --recursive"
  }
}

可能对每个人都行不通,但这解决了我的问题。



 类似资料:
  • 问题内容: 我是Mocha的新手,我正试图用它来测试一个简单的React组件。如果react组件没有任何CSS样式,则测试将通过,但是如果React组件内的标签包含任何className,则会引发语法错误: Testing.react.js testing.jsx 测试将通过: 在输入标签内添加className之后,出现错误: 测试结果: 我已经在网上搜索过,但到目前为止还没有运气。我想念什么吗

  • 我有一个nodejs应用程序,它具有使用backbonejs和在js构建的客户端代码。我想使用mocha在我的nodejs服务器上测试客户端代码。 我的摩卡测试文件:test/view.coffee 要测试的backonejs文件:public/javascripts/views/test_view.coffee 在public/javascript/libs中,我有jQuery、骨干和下划线的缩

  • 要运行Mocha的测试,您需要GNU Make或兼容; Cygwin应该工作。 $ cd /path/to/mocha $ npm install $ npm test 要使用其他记者: $ REPORTER=nyan npm test

  • 问题内容: 我希望能够在使用jest时使用webpack别名来解析导入,并且最好参考以避免重复。 开玩笑的conf: Webpack别名: 进口: 由于某种原因,导致了问题,因此将其删除(使用别名和导入)时,可以找到但仍然无法解决。 我尝试使用jest-webpack-alias,babel-plugin-module-resolver和Jest / Webpack docs 问题答案: 这似乎已

  • 问题内容: 我正在使用JavaScript测试运行程序“摩卡”。 我的测试失败了,因此我将使用进行调试。 但是运行测试时,没有输出(仅来自Mocha的测试结果)。看来Mocha已捕获并抑制了我的输出! 如何让Mocha显示输出?(对于失败的测试)? 编辑: 抱歉!- 在测试期间可以正常工作!我肯定一直期望它抑制输出,而且我没有正确检查自己的代码。感谢您的回应。所以…话虽如此…也许抑制通过测试的输出

  • 目标 建立一个 lesson6 项目,在其中编写代码。 main.js: 其中有个 fibonacci 函数。fibonacci 的介绍见:http://en.wikipedia.org/wiki/Fibonacci_number 。 此函数的定义为 int fibonacci(int n) 当 n === 0 时,返回 0;n === 1时,返回 1; n > 1 时,返回 fibonacci(