Я новичок в Minitest и Apartment и испытываю трудности при правильной настройке среды для запуска тестовых случаев. Я хочу провести приемочные испытания с использованием Capybara & Selenium. Когда я запускаю свои тесты, я получаю следующее сообщение об ошибке:Как проверить квартиру, минималист, Capybara & Selenium
Apartment::TenantNotFound: Apartment::TenantNotFound: One of the following schema(s) is invalid: "test-tenant" "public"
Так что, похоже, арендатор создан неправильно. В квартире драгоценный камень есть инструкции, как использовать его с Rspec, но я не знаю, как сделать аналогичную настройку в Minitest. Как определить арендаторов, чтобы Minitest мог их видеть?
Мой test_helpers.rb:
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require "minitest/reporters"
require "minitest/rails/capybara"
Minitest::Reporters.use!
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
fixtures :all
end
class ActionController::TestCase
include Devise::TestHelpers
end
class ActionDispatch::IntegrationTest
end
И тест:
require "test_helper"
class LoginTest < Capybara::Rails::TestCase
def setup
Apartment::Tenant.drop("test-tenant") rescue nil
Apartment::Tenant.create("test-tenant") rescue nil
Apartment::Tenant.switch!("test-tenant")
# Since we are using Apartment gem, we need to tell Capybara to connect our testing tenant URL + port number
Capybara.server_port = 5000
Capybara.always_include_port = true
Capybara.app_host = "http://test-tenant.lvh.me"
end
feature "Login" do
scenario "with correct credentials", js: true do
visit '/accounts/sign_in'
fill_in("account[email]", with: "#{accounts(:tenant_user).email}")
fill_in("account[password]", with: "password")
click_button("Sign in")
page.must_have_content("Signed in successfully.")
visit '/'
page.must_have_content("Welcome")
end
end
end
Этот подход достаточно хорош, чтобы ускорить проверку рельсов с помощью minitest? У меня было ужасное время с тестированием квартиры с мини-магазином, потому что мне приходилось создавать арендатора каждый раз, когда вызывается метод тестирования. – artificis
Я хочу сказать, что после вашего метода арендатор создается только один раз для одного цикла тестирования? Или он создан до каждого теста? – artificis
Арендатор создается только один раз. Затем он выполнит все миграции для создания таблиц для арендатора. – talakoski