Тесты функциональности Rails Сбой в обновлении Rails 5.0 - PullRequest
0 голосов
/ 09 апреля 2020

Я обновляю приложение rails с 4.2 до 5.0. Мы используем ruby 2.6.4

Мои тесты функций выполнялись нормально в 4.2, но теперь не выполняются в 5.0. Я не смог найти ничего об этом с помощью Google. Мне кажется, что функциональные тесты не видят страницу.

Gemfile:
group :test do                                                                  
   gem 'factory_girl'                                                            
   gem 'factory_girl_rails'                                                      
   gem 'capybara'                                                                
   gem 'faker'                                                                   
   gem 'mocha', require: false                                                   
   gem 'webmock', require: false                                                 
   gem 'simplecov'                                                               
   gem 'rails-controller-testing'                                                
end

Gemfile.lock показывает capybara (3.32.1) Я играл с несколькими различными версиями капибары, но получаю те же результаты.

Проверка характеристик:

require 'spec_helper.rb'

RSpec.feature "Manage Account Codes" do

  scenario "User creates a new Account Code" do
    # go to the new account code form
    visit new_admins_kuali_account_code_path

    # should be success
    expect(page.status_code).to eq(200)

    # are we on the right page/form?
    expect(page).to have_content("Use this form to add a new account code")
  end
  ...
end

Отказ:

Manage Account Codes
  User creates a new Account Code (FAILED - 1)

Failures:

  1) Manage Account Codes User creates a new Account Code
     Failure/Error: expect(page).to have_content("Use this form to create a new account code")
       expected to find text "Use this form to create a new account code" in "Kuali Account Codes\n| | \"kuali_account_codes\", :action => \"index\") %> | | | | 'layouts/statlerwire' %>"
     # ./spec/features/kuali_account_code_spec.rb:19:in `block (2 levels) in <top (required)>'

Finished in 1.45 seconds (files took 2.7 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/features/kuali_account_code_spec.rb:11 # Manage Account Codes User creates a new Account Code

Первый тест: expect(page.status_code).to eq(200) пройден. Я закомментирую остальные, так что только он работает. Кажется, он достигает page, но больше ничего не видит / не находит на странице. Я пропускаю необходимый драгоценный камень для rails 5.0?

Как уже упоминалось, все функциональные тесты прошли в 4.0. Любопытно!

Спасибо за любую помощь.

-john C

1 Ответ

0 голосов
/ 10 апреля 2020

Мне наконец удалось исправить эту проблему. В конечном итоге это вызвано некоторой записью CSS, которую «мы считаем» была добавлена ​​для работы со старой версией Inte rnet Explorer. Когда я пытался просмотреть страницу / форму, для которой предназначались тесты spe c (на моем сайте разработки), я получал несколько странных сообщений об ошибках. В их сочетании была синтаксическая ошибка в файле css: ... found ; expecting } Я сталкивался с этим:

Из файла css:

table.display thead th {                                                        
   padding: 3px 10px;                                                            
   border-bottom: 1px solid black;                                               
   font-weight: bold;                                                            
   cursor: pointer;                                                              
   * cursor: hand;                                                                                                                                
}

Звездочка * была ошибка В коммит-сообщении за 2011 год отмечалось, что оно было для * property: set the value in IE < 7. Удаление это решило проблему. Приложение, на котором я работаю, не является общедоступным c приложением, и мы не используем / не поддерживаем более старые версии IE, поэтому удаление его не было проблемой.

Это немного странно, этого не было проблема в предыдущих версиях rails, но 5.0 не понравилась.

Все функциональные тесты пройдены.

...