Я пытаюсь использовать webpack для объединения тестов в пакет, который я могу передать непосредственно на mocha. Мой WebPack конфигурации выглядит примерно так:Требование тестовых файлов с webpack для использования с моккой или аналогичным
module.exports = {
entry: ...,
output: ...,
module: {
rules: [
{
test: /\.jsx?(.erb)?$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
presets: [
'react',
[ 'latest', { 'es2015': { 'modules': false } } ]
]
}
}
]
},
plugins: [],
resolve: {
extensions: [ '.js', '.jsx' ],
modules: [
path.resolve('../app/javascript'),
path.resolve('../vendor/node_modules')
]
},
resolveLoader: {
modules: [ path.resolve('../vendor/node_modules') ]
}
}
(от https://github.com/rails/webpacker)
Моя точка входа выглядит так, что я видел ссылки на других:
var context = require.context('../path/to/tests', true, /.+\.test\.js?$/);
context.keys().forEach(context);
module.exports = context;
Сейчас это работает, и производит пучок, скажем, tests.js, который я могу передать мокко:
$ mocha tests.js
Однако это заставляет webpack перекомпилировать все тестовые файлы каждый раз, когда что-то меняется, что очень медленно. Для моего кода приложения, где я импортирую модули с помощью регулярных операторов импорта, webpack только перекомпилирует файлы, которые были изменены.
Изменение моей точки входа на что-то вроде:
require('../path/to/tests/foo.test.js');
require('../path/to/tests/bar.test.js');
require('../path/to/tests/baz.test.js');
...
Кажется, желаемый эффект, но есть сотни тестовых файлов, и, кажется громоздким, чтобы вручную импортировать или требовать каждого из них.