rspec中间人测试一旦部署失败

时间:2018-09-15 21:45:31

标签: deployment rspec gemfile middleman nomethoderror

这里是新手,所以如果问题可能很愚蠢,我先向您道歉。

我已经使用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#索引页显示导航栏局部

0 个答案:

没有答案