Как настроить Jasmine в среде Rails 6 (где Webpack заменяет конвейер ресурсов для Javascript), чтобы я мог протестировать модули Javascript, которые я написал для своего приложения?
Я установил жасминовый драгоценный камень, запустил rails generate jasmine:install
и отредактировал, jasmine.yml
чтобы указать местоположение моего источника Javascript и спецификаций.
Проблема в том, что я не могу использовать операторы импорта / экспорта. (Например, при попытке загрузить мой первый модуль для результатов тестирования в этих ошибках в Chrome: Uncaught SyntaxError: Unexpected token 'export'
)
Из того, что я могу сказать, мне нужно настроить Жасмин на использование babel; но мне не повезло найти инструкции о том, как это сделать, в новом макете Rails 6.
Ответы:
Да, ты прав. Основная проблема
jasmine-gem
том, что он не передает спецификации через babel. Позвольте мне опубликовать самое быстрое решение вашей проблемы, и после этого я подумаю о возможной реализации аналогичного подхода вjasmine-gem
.Основная идея заключается в том, чтобы передать спецификации через веб-пакет рельсов, если он имеет все необходимые конфигурации бабки.
jasmine-core
так как мы не будем использоватьjasmine-gem
в этом решенииТеперь создайте два дополнительных пакета веб-пакетов. Один для Жасмин и будет содержать только Жасмин и тестовый бегун
И второй для вашего кода приложения и спецификации
Обратите внимание на ваши
'../javascripts'
и'../spec'
пути. Для меня это выглядело как'../../assets/javascripts'
и соответственно'../../../spec'
.Затем добавьте веб-пакет ProvidePlugin для Jasmine (добавьте этот код в
config/webpack/environment.js
)Добавить страницу жасмин раннер в ваше приложение
/jasmine
маршрутуЭтот ответ подготовлен на основе этого поста , однако я перепроверил инструкции на ruby 2.6.3, rails 6.0.2, добавил соответствующие изменения в рекомендации и докажу, что это работает.
Пожалуйста, дайте мне знать, если мой ответ был полезен для вас, или вам нужна дополнительная информация. Тем не менее, я собираюсь поработать над решением, которое преуспеет с
jasmine
гемом или аналогичной реализацией.источник
bootstrap.min.js
выдает ошибку, которая в основном означает,jquery
что не загружалась раньшеbootstrap
. Тем не менее,] я не могу найти то, что в этом коде меняет порядок загрузки JS ... тем более, что мой загрузчик загружается через CDN в макете приложения послеjavascript_pack_tag 'application'
строки, а у меняapplication.js
уже естьrequire('jquery')
. Если у вас есть такая настройка в локальной среде, можете ли вы загрузить загрузчик через CDN в макете приложения и посмотреть, работает ли он?