À l'aide de webpack alias moka tests

Je suis le développement d'une application web à l'œuvre dans de Réagir/Redux/Webpack et je suis maintenant de commencer à intégrer des tests avec Moka.

J'ai suivi les instructions pour l'écriture de tests dans le Redux documentation, mais maintenant, j'ai couru dans un problème avec mon webpack alias.

Par exemple, prendre un coup d'oeil à la section imports de ce test pour l'un de mes action créateurs:

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);
    });
  });
});

Comme les commentaires le suggèrent, moka n'est pas en mesure de résoudre mes déclarations d'importation lorsqu'ils sont de référencement alias dépendances.

Parce que je suis encore nouveau pour webpack, voici mon 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
    }]
  }
};

Aussi, je suis en utilisant la commande npm test pour exécuter moka, voici le script que j'utilise dans mon package.json.

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

Donc voilà où je me retrouve coincé. J'ai besoin d'inclure les alias à partir de webpack en moka lorsqu'il s'exécute.

  • Je vais avoir le même problème, avez vous trouvé un moyen de faire cela ?
  • Yep, vient de poster ma réponse. YMMV
InformationsquelleAutor Danny Delott | 2015-11-19