Rails: SimpleCov не удалось с выходом 1 - как решить эту проблему - PullRequest
0 голосов
/ 08 апреля 2020

Я обновляю приложение rails с rails 4.2 до 5.0. затем на 5.1, 5.2. Он использует ruby 2.6.4.

Когда я запускаю свои тесты spe c, я получаю ошибку: SimpleCov failed with exit 1. Я не могу найти какую-либо информацию, указывающую c на это с помощью Google. Я прочитал документацию для драгоценного камня, но я не могу найти какую-либо информацию, которая поможет мне разобраться с причиной этого или как это исправить.

Gemfile:
gem 'rails', '~> 5.0'

Я также внес эти изменения в Gemfile, чтобы получить bundle update rails на работу.

-gem 'sass-rails', '~> 4.0.3'
+gem 'sass-rails'
-gem 'coffee-rails', '~> 4.0.0'
+gem 'coffee-rails'

Gemfile.lock (shows)
simplecov (0.18.5)
  docile (~> 1.1)
  simplecov-html (~> 0.11)
simplecov-html (0.12.2)

Я не перечисляю simplecov-html в моем Gemfile, поэтому я не понимаю, почему Gemfile.lock отображает камень как 0.11 и 0.12.2. Это проблема?


Чтобы успокоить пару несвязанных предупреждений об устаревании, мне пришлось внести изменения в эти файлы. скопировано с git diff Принимая во внимание их здесь, на всякий случай ...

config/environments/production.rb
-  config.serve_static_files = false
+  config.public_file_server.enabled = false
config/environments/staging.rb
-  config.serve_static_files = false
+  config.public_file_server.enabled = false
config/environments/test.rb
-  config.serve_static_files = true
+  config.public_file_server.enabled = true
-  config.static_cache_control = "public, max-age=3600"
+  config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }

Запуск spe c тестов

jdc44@dev:~/apps/ereqs$ bundle exec rake
...
Coverage report generated for RSpec to /home/STATLER/jdc44/apps/ereqs/coverage. 3 / 892 LOC (0.34%) covered.
SimpleCov failed with exit 1
Traceback (most recent call last):
    30: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/exe/rspec:4:in `<main>'
    29: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:45:in `invoke'
    28: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:71:in `run'
    27: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:86:in `run'
    26: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/runner.rb:100:in `setup'
    25: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1433:in `load_spec_files'
    24: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1433:in `each'
    23: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files'
    22: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/rspec-core-3.5.3/lib/rspec/core/configuration.rb:1435:in `load'
    21: from /home/STATLER/jdc44/apps/ereqs/spec/controllers/admins/account_codes_controller_spec.rb:1:in `<top (required)>'
    20: from /home/STATLER/jdc44/apps/ereqs/spec/controllers/admins/account_codes_controller_spec.rb:1:in `require'
    19: from /home/STATLER/jdc44/apps/ereqs/spec/spec_helper.rb:6:in `<top (required)>'
    18: from /home/STATLER/jdc44/apps/ereqs/spec/spec_helper.rb:6:in `require'
    17: from /home/STATLER/jdc44/apps/ereqs/config/environment.rb:5:in `<top (required)>'
    16: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
    15: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
    14: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/application.rb:352:in `initialize!'
    13: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:54:in `run_initializers'
    12: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:205:in `tsort_each'
    11: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:226:in `tsort_each'
    10: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:347:in `each_strongly_connected_component'
     9: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:347:in `call'
     8: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:347:in `each'
     7: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:349:in `block in each_strongly_connected_component'
     6: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:431:in `each_strongly_connected_component_from'
     5: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
     4: from /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each'
     3: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:55:in `block in run_initializers'
     2: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:30:in `run'
     1: from /home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:30:in `instance_exec'

/home/STATLER/jdc44/apps/ereqs/vendor/bundle/ruby/2.6.0/gems/sprockets-rails-3.2.1/lib/sprockets/railtie.rb:105:in `block in <class:Railtie>': Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
But did not, please create this file and use it to link any assets that need
to be rendered by your app:

Example:
  //= link_tree ../images
  //= link_directory ../javascripts .js
  //= link_directory ../stylesheets .css
and restart your server

Я не думаю, что манифест. js вывод связан, но оставил его на всякий случай, если он кому-либо подсказывает.

Строки 18 - 21 включают два файла, которые мы написали (не созданный ruby ​​/ rails).

21: from /home/STATLER/jdc44/apps/ereqs/spec/controllers/admins/account_codes_controller_spec.rb:1:in `<top (required)>'
20: from /home/STATLER/jdc44/apps/ereqs/spec/controllers/admins/account_codes_controller_spec.rb:1:in `require'
19: from /home/STATLER/jdc44/apps/ereqs/spec/spec_helper.rb:6:in `<top (required)>'
18: from /home/STATLER/jdc44/apps/ereqs/spec/spec_helper.rb:6:in `require'
spec/controllers/admins/account_codes_controller_spec.rb (with line nbr)
  1 require 'spec_helper'
spec/spec_helper.rb (with line nbrs)
  1 require 'simplecov'                                                                                                                                    
  2 SimpleCov.start 'rails'                                                        
  3                                                                                
  4 # This file is copied to spec/ when you run 'rails generate rspec:install'     
  5 ENV["RAILS_ENV"] ||= 'test'                                                    
  6 require File.expand_path("../../config/environment", __FILE__)                 
  7 require 'rspec/rails'                                                          
  8 require 'capybara/rspec'                                                       
  9 require 'webmock/rspec'                                                        
 10 require 'statlerwire/spec_helpers'

Я не знаю ни одного файла журнала, который мог бы содержать какие-либо подсказки. Я прочитал много веток через Google, но не нашел ни одной с моим настоящим topi c.

Любая помощь будет принята с благодарностью.

John C

1 Ответ

1 голос
/ 09 апреля 2020

Поскольку simplecov все еще отображается в файле Gemfile.lock, лучше всего удалить файл Gemfile.lock, а затем запустить bundle install. Это восстановит ваш Gemfile.lock файл и simplecov должен быть удален.

...