Vue + Mocha, 0 тестов, пройденных, если vue singlefile имеет тег ‹style›

Я реализую VueJS в приложении Ruby on Rails, используя webpacker и vueonrails gem, и у меня возникают проблемы с тестированием реализации Vue.

У меня есть куча .vue файлов, использующих шаблон одного файла. Если я делаю тест для файлов, содержащих только теги и , все файлы папки и подпапок выполняются правильно, имея другие компоненты с тегом <style> без тестового файла в той же папке.

Если я запускаю тесты, результат - 45 пройденных тестов.

Затем, если я напишу тест одного из этих файлов с <style> и снова запущу тесты, он будет выполнен без ошибок, но скажет, что тест 0 пройден, избегая прохождения всех тестов папки.

Если я запускаю конкретный тест файла без тега <script>, он проходит все тесты файла нормально, если я тестирую файл с <script>, прохождение теста 0.

Я использую mochapack и ignore-styles для запуска с помощью этой команды:

NODE_ENV=test mochapack --webpack-config config/webpack/test.js --require ignore-styles --require app/webpacker/src/test/setup.js --glob '*.spec.js' app/webpacker/src/components --recursive

Я что-то связан с импортом компонента Vue в файл spec.js, но я не знаю, как это решить, и почему работает с файлами <template> + <script>, а не с файлами <template> + <script> + <style>.


person Ramon-san    schedule 28.01.2020    source источник


Ответы (1)


Не могли бы вы предоставить свою тестовую конфигурацию? У меня была аналогичная проблема, которая была вызвана неправильной конфигурацией. В среде dev/prod стили загружались с помощью ruby ​​gem, но вся тестовая среда запускается узлом. Итак, в тестовой конфигурации мне пришлось добавить загрузчики для css:

environment.loaders.prepend('css', {
  test: /\.css$/,
  use: [
    'vue-style-loader',
    'css-loader',
    'sass-loader',
  ],
});
person ktobis    schedule 08.05.2020