Тест посредника rspec провалился после развертывания - PullRequest
0 голосов
/ 16 сентября 2018

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

Я создал статическую веб-страницу, используя Middleman (ruby), все работало локально, и тесты rspec проходили. Для развертывания мне пришлось переместить все файлы в один каталог и создать новый репозиторий (был средний уровень, который был бесполезен и не позволял мне развертывать). Если я сейчас открою веб-страницу, то там не будет навигационной панели моего сайта, и если я запущу тесты, все сломается. В чем может быть проблема?

// spec_helper.rb

require 'rspec'
require 'capybara/rspec'

require 'middleman-core'
require 'middleman-core/rack'
require 'middleman-autoprefixer'
require 'middleman-livereload'

middleman_app = ::Middleman::Application.new

Capybara.app = ::Middleman::Rack.new(middleman_app).to_app do
  set :root, File.expand_path(File.join(File.dirname(FILE), '..'))
  set :environment, :development
  set :show_exceptions, false
end

// index_spec.rb

опишите 'Индекс', введите:: feature do

it 'displays project list' do
    expect(page).to have_css '.projects'
    within '.projects' do
      expect(page).to have_content 'My First Website in HTML'
      expect(page).to have_content 'FizzBuzz'
      expect(page).to have_content 'My First Website in React'
      expect(page).to have_content 'Address Book'
    end
end

it 'displays navbar partial' do
    expect(page).to have_css '.topnav'
    within '.topnav' do
        expect(page).to have_content 'Home'
        expect(page).to have_content 'About'
        expect(page).to have_content 'Projects'
        expect(page).to have_content 'Contact'
    end
end

конец

// site.js

function navbar() {
    var x = document.getElementById("myTopnav");
    if (x.className === "navbar") {
        x.className += " responsive";
    } else {
        x.className = "navbar";
    }
}

function scrollToElementWithId(id) {
    var name = "";
    switch (id) {
        case 0:
            name = "home"
        break;
        case 1:
            name = "about"
        break;
        case 2:
            name = "projects"
        break;
        case 3:
            name = "curriculum"
        break;
        case 4:
            name = "contact"
        break;
        default:
            scrollToElementWithId(0);
    }
    document.getElementById(name).scrollIntoView({behavior: "smooth"});
}

Сообщение об ошибке: Неудачи:

1) На индексной странице отображается список проектов Ошибка / Ошибка: посетите '/'

 NoMethodError:
   undefined method `visit' for #<RSpec::ExampleGroups::IndexPage:0x00007f9a35aaa880>
 # ./spec/feature/index_spec.rb:4:in `block (2 levels) in <top (required)>'

2) На индексной странице отображается панель навигации Ошибка / Ошибка: посетите '/'

 NoMethodError:
   undefined method `visit' for #<RSpec::ExampleGroups::IndexPage:0x00007f9a35aa8f08>
 # ./spec/feature/index_spec.rb:15:in `block (2 levels) in <top (required)>'

Завершено за 0,0034 секунды (загрузка файлов заняла 0,10427 секунды) 2 примера, 2 отказа

Неудачные примеры:

rspec ./spec/feature/index_spec.rb:3 # На странице указателя отображается список проектов rspec ./spec/feature/index_spec.rb:14 # На индексной странице отображается панель навигации, частичная

...