Трэвис терпит неудачу с рельсом выпуска вебпакера (Rspec) 5.2 - PullRequest
0 голосов
/ 20 января 2019

Я только начал использовать rspec для тестирования в моем приложении rails 5.2.Я развертываю свое приложение в своем удаленном репозитории Github, который затем тестируется Travis перед развертыванием в Heroku.

Я создал несколько очень простых тестов, которые проходили нормально, но я только что добавил новую модель distilleries, и теперь Трэвис не удается собрать.

Кажется, Трэвис жалуется на невозможность найти файл в моем манифесте веб-пакета.Мое приложение отлично работает локально.

Когда я запускаю rspec spec/models/distillery_spec.rb в консоли, я получаю 0 ошибок.

Я новичок в тестировании в Rails, поэтому будьте осторожны, если ясделал ошибку новичка где-то.

Travis Log

...    
Failures:

  1) Distilleries GET /distilleries works! (now write some real specs)
     Failure/Error: <%= javascript_pack_tag 'application' %> 

     ActionView::Template::Error:
       Webpacker can't find application.js in /home/travis/build/sfcooper/GD/public/packs-test/manifest.json. Possible causes:
       1. You want to set webpacker.yml value of compile to true for your environment
          unless you are using the `webpack -w` or the webpack-dev-server.
       2. webpack has not yet re-run to reflect updates.
       3. You have misconfigured Webpacker's config/webpacker.yml file.
       4. Your webpack configuration is not creating a manifest.
       Your manifest contains:
       {
       }
     # ./app/views/layouts/application.html.erb:17:in `_app_views_layouts_application_html_erb___92036987216695529_24174260'
     # ./spec/requests/distilleries_spec.rb:6:in `block (3 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Webpacker::Manifest::MissingEntryError:
     #   Webpacker can't find application.js in /home/travis/build/sfcooper/GD/public/packs-test/manifest.json. Possible causes:
     #   1. You want to set webpacker.yml value of compile to true for your environment
     #      unless you are using the `webpack -w` or the webpack-dev-server.
     #   2. webpack has not yet re-run to reflect updates.
     #   3. You have misconfigured Webpacker's config/webpacker.yml file.
     #   4. Your webpack configuration is not creating a manifest.
     #   Your manifest contains:
     #   {
     #   }
     #   ./app/views/layouts/application.html.erb:17:in `_app_views_layouts_application_html_erb___92036987216695529_24174260'
Finished in 1.04 seconds (files took 2.32 seconds to load)
9 examples, 1 failure
Failed examples:
rspec ./spec/requests/distilleries_spec.rb:5 # Distilleries GET /distilleries works! (now write some real specs)

...

винокурня_spec.rb

require 'rails_helper'

    RSpec.describe Distillery, type: :model do
      context 'validations' do
        it { should validate_presence_of(:name) }
        it { should validate_presence_of(:snippet) }
      end
      context 'associations' do
        it { should have_many(:gins) }
      end
    end

фабрики / винокурни.rb

FactoryGirl.define do
  factory :distillery do

  end
end

travis.yml

language: ruby
rvm:
- 2.4.0
before_script:
- bundle exec rake db:create --all
- bundle exec rake db:migrate
script:
  - bundle exec rake ci:tests
services:
- postgresql
notifications:
  email: false
deploy:
  provider: heroku
  api_key:
    secure: ******
  app:
    master: thegd
  on:
    repo: sfcooper/GD
  run:
  - rails db:migrate

Обновление

I 'Теперь я удалил весь файл distilleries_spec.rb, и у меня остались те же проблемы.Я просто не вижу, где Трэвис находит проблему с файлом манифеста.

public / packs / manifest.json {

"application.css": "/packs/application-25e3a7ac7f3afb6db64c457a591257f8.css",
  "application.css.map": "/packs/application-25e3a7ac7f3afb6db64c457a591257f8.css.map",
  "application.js": "/packs/application-135f3e8e200516e9e3cd.js",
  "application.js.map": "/packs/application-135f3e8e200516e9e3cd.js.map",
  "botanicalselector.js": "/packs/botanicalselector-c06eacfbeb4820a881b6.js",
  "botanicalselector.js.map": "/packs/botanicalselector-c06eacfbeb4820a881b6.js.map",
  "countryselector.js": "/packs/countryselector-9f4de505e0d165ed7721.js",
  "countryselector.js.map": "/packs/countryselector-9f4de505e0d165ed7721.js.map"
}

Также с учетом ошибки:

Webpacker не может найтиapplication.js в /home/travis/build/sfcooper/GD/public/packs-test/manifest.json

Я убедился, что этот путь отсутствует в .gitignore.

1 Ответ

0 голосов
/ 20 января 2019

Решено

Благодаря этому - https://github.com/rails/webpacker/issues/1494

Мне потребовалось немного времени, чтобы заметить, что Трэвис искал manifest.json в/public/packs-test/ не просто /public/packs.

После запуска:

RAILS_ENV=test bundle exec rails webpacker:compile

Трэвис теперь проходит сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...