Доработка webpack template #1
Вводные
Есть темплейт web проетка: webpack template.
Не работает или работает плохо:
- Очень странно и долго грузятся сурсмапы
- Поддержка tern-project умерла
- Не генерится code-coverage
- Успел придумать еще несколько классов для cgn, вроде asset
- Успел довольно много правил для eslint поменять
Процесс
Самое простое:
- Обновить все зависимости
- Откопировать .eslintrc и jsconfig из другого проекта
Тесты
Теперь настройка тестов - karma coverage. Там была основная проблема, что конфигурации очень плохо друг на друга ложаться, поэтому нужно сначала настроить генерацию покрытия, а потом уже смотреть как запустить остальные тесты.
Нашел детальный пример на медиуме.
Ставлю все что предлагают (зачем разными командами? Не знаю, копировать было проще):
$ npm install karma --save-dev && npm install mocha --save-dev && npm install karma-mocha --save-dev && npm install --save-dev karma-webpack && npm install karma-sourcemap-loader --save-dev && npm install karma-chrome-launcher --save-dev && npm install babel-loader --save-dev && npm install karma karma-coverage --save-dev && npm i -D istanbul-instrumenter-loader && npm install karma-chai && npm install karma-mocha-reporter --save-dev
Почему-то karma-mocha-reporter к установке не сказано, но без него не запускается. Плагин karma-chai просто вырезал из списка, хз зачем оно.
...
Тесты проходят, но статистика не генерится:
...
![]() |
Багульность всего этого конечно катастрофическая - при запуски через karma отваливаются пакеты, которые всю жизнь работали |
Нифига конечно же не работает, поэтому идем в другом направлении, через istanbul плагин.
Чем все кончилось
Как всегда глупостью. Для сборки npm run unit-test стоял конфиг karma start karma.config.js --single-run. При этом по умолчанию вебпак у меня запускается в окружении production, без сурсмап.
В итоге только установить npm i -D karma-sourcemap-loader babel-plugin-istanbul и прописать пару полей по конифгам.
*Отвлекся на публикацию статистики в гитлабе, попутно наткнулся на хорошую доку от гитлаба по поводу уровней тестов.
Продолжаю
Попутно решил изменить структуру билдов:
Теперь все выходные данные идут в dist/
dist/reports/coverage
dist/reports/docs
dist/app
Comments
Post a Comment