Я новичок в мире JavaScript, и моя первая задача — покрыть существующий проект тестами. Мы используем ES6/babel/webpack2, и было решено выбрать Mocha/Chai в качестве тестовых фреймворков.
Первым делом я создал файл .babelrc в корне проекта:
{
"presets": ["es2015", "react", "stage-0"]
}
После этого я добавил следующий скрипт в package.json:
"test": "mocha --compilers js:babel-core/register ./src/test/*.js"
Мой простой тестовый файл выглядит так:
import {arraysAreEquals} from 'dashboard-app/utils/common-utils'
import {assert} from 'chai'
describe("common-utils", function () {
it ("arraysAreEquals", function () {
var array1 = [1, 2, 3];
var array2 = [1, 2, 3];
assert.equal(arraysAreEquals(array1, array2), true);
});
});
Запустив мой тест (тест запуска npm), я получил следующую ошибку:
Error: Cannot find module 'dashboard-app/utils/common-utils'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
Это вполне ожидаемо, так как dashboard-app — это просто псевдоним, который устанавливается как в webpack.config.dev.js, так и в webpack.config.prod.js. :
resolve: {
modules: [
path.resolve(__dirname),
"node_modules"
],
alias: {
'dashboard-app/config': 'src/config',
'dashboard-app/utils': 'src/utils',
.......
Итак, в основном мой вопрос заключается в том, как мне изменить тестовый скрипт в package.json, чтобы связать мой webpack.config.dev.js (я считаю, что он подходит для тестовой среды)? У меня не сработало следующее (ни один из двух вариантов):
"test": "NODE_ENV=dev mocha --compilers js:babel-core/register ./src/test/*.js"
"test": "NODE_ENV=dev --env=dev mocha --compilers js:babel-core/register ./src/test/*.js"