RSpec:在Capybara测试中无法编译Vue.js代码

我正在尝试使用RSpec和Capybara和无头Chrome进行一些集成测试。

但是,页面上的Vue.js代码似乎没有编译,因此集成测试无法正常运行。

我正在使用以下宝石:

group :development,:test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug',platforms: [:mri,:mingw,:x64_mingw]
  gem 'pry'
  gem 'rspec-rails','~> 3.8'
  gem 'factory_bot_rails'
  gem 'faker',git: 'https://github.com/stympy/faker.git',branch: 'master'
  gem 'database_cleaner'
  gem 'selenium-webdriver'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara','>= 2.15'
  gem 'capybara-selenium'
  gem 'webdrivers'
end

我的rails_helper.rb包含以下行:

require 'rspec/rails'
require 'capybara/rails'
require 'capybara/rspec'
require 'selenium/webdriver'

# ...

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app,browser: :chrome)
end

Capybara.register_driver :headless_chrome do |app|
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { args: %w[headless disable-gpu] }
  )

  Capybara::Selenium::Driver.new app,browser: :chrome,desired_capabilities: capabilities
end

# Capybara.default_driver = :headless_chrome
# Capybara.javascript_driver = :headless_chrome

Capybara.default_driver = :chrome
Capybara.javascript_driver = :chrome

webpacker信息的输出:

bundle exec rails webpacker:info                                  
Ruby: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
Rails: 6.0.1
Webpacker: 4.0.7
Node: v8.9.2
Yarn: 1.19.1

@rails/webpacker: 
myapp@ /Users/me/Documents/apps/myapp
└── @rails/webpacker@4.0.7 

Is bin/webpack present?: true
Is bin/webpack-dev-server present?: true
Is bin/yarn present?: true

但是当我运行集成时,不是像预期那样执行Vue.js代码,而是看到它作为文本输出到页面,例如:

RSpec:在Capybara测试中无法编译Vue.js代码

我也尝试过跑步

RAILS_ENV=test rails assets:precompile

在运行规范之前,但这似乎也不起作用。

这是规格文件:

RSpec.feature 'Users can create invocies' do
  let(:user) { create(:user) }
  let(:address) { create(:address,user: user) }

  let(:client) { create(:client,user: user) }
  let!(:client_address) { create(:address,user: user,client: client) }

  before do
    login_as user
    visit new_invoice_path
  end

  context 'successfully' do
    it 'displays a success message on creation' do
      fill_in 'Invoice No.',with: rand(1..100)
      select address.full_address,from: 'invoice_personal_address'
      select client_address.full_address,from: 'invoice_client_address'

      fill_in 'Service name',with: 'Amazing web development'
      fill_in 'Service description',with: 'Web development for real pros.'

      fill_in 'Quantity',with: rand(1..10)
      fill_in 'Rate',with: rand(30.0..80.0)

      fill_in 'Date issued',with: Date.today
      fill_in 'Date due',with: 1.month.from_now

      click_button 'Create Invoice'

      expect(page).to have_content 'Invoice was successfully created.'
    end
  end
end

知道我做错了什么吗? 预先感谢

wenpc007 回答:RSpec:在Capybara测试中无法编译Vue.js代码

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3125173.html

大家都在问