#ruby-on-rails #swagger #rspec-rails
#ruby-on-rails #swagger #rspec-rails
Вопрос:
Я уже использовал rswag раньше, с точно такими же настройками. Но по какой-то причине я не могу запустить свой rspec или rake rswag:specs:swaggerize; я всегда получаю сообщение об ошибке метода ‘swagger-root=’ undefined. Я не могу понять, почему.
Я уже пытался снова установить все файлы rswag; rails g rswag: api:install rswag:ui:install RAILS_ENV=test rails g rswag:спецификации: установить я также попытался снова установить rspec.
«»При загрузке произошла ошибка ./spec/integration/translation_sp.rb. Сбой / ошибка: config.swagger_root = Rails.root.to_s ‘/swagger’
Ошибка NoMethodError: неопределенный метод `swagger_root=’ для #»»
/spec/swagger_helper.rb
require 'rails_helper'
RSpec.configure do |config|
config.swagger_root = Rails.root.to_s '/swagger'
config.swagger_docs = {
'v1/swagger.json' => {
swagger: '2.0',
info: {
title: 'API V1',
version: 'v1'
},
paths: {}
}
}
end
Ответ №1:
После многих попыток это в конечном итоге показалось ответом: изменение двух строк в файле spec_helper. От этого:
root = File.expand_path('../', File.dirname(__FILE__))
Dir[File.join(root,'lib/**/*.rb')].each { |f| require f }
К этому:
require File.expand_path("../../config/environment", __FILE__)
Вероятно, слово «root» здесь не следует использовать..