Rspec 如何将sinatra机架测试异常转储到控制台?
在开发过程中,我希望在运行测试时看到sinatra应用程序异常,例如:Rspec 如何将sinatra机架测试异常转储到控制台?,rspec,sinatra,rack,Rspec,Sinatra,Rack,在开发过程中,我希望在运行测试时看到sinatra应用程序异常,例如: require 'sinatra/base' class ExceptionWeb < Sinatra::Base enable :raise_errors enable :dump_errors configure do enable :dump_errors end get "/" do raise "hell" "ok" end def self.bad_m
require 'sinatra/base'
class ExceptionWeb < Sinatra::Base
enable :raise_errors
enable :dump_errors
configure do
enable :dump_errors
end
get "/" do
raise "hell"
"ok"
end
def self.bad_method
raise "bad method"
end
end
require 'rack/test'
describe 'The Web interface' do
include Rack::Test::Methods
def app
ExceptionWeb
end
it "should error out" do
get "/"
#puts last_response.errors
#ExceptionWeb.bad_method
#last_response.should be_ok
end
end
需要'sinatra/base'
类异常web
下面的rspec代码完全没有显示任何异常,如果我取消注释最后一个响应,那么我会看到一些错误,但我看不到什么是错误的
但是调用mad_方法
会显示异常
将添加到最后一个响应中。每个测试中的错误看起来都不合适
我尝试了sinatra配置选项raise\u errors
和dump\u errors
,但这对我帮助不大
有什么想法吗?可能是rspecconfig.backtrace\u clean\u模式的问题
?有关于它的链接这是必须使用的选项组合,然后它才能工作
set :raise_errors, true
set :dump_errors, false
set :show_exceptions, false
当ENV['RACK\u ENV']
设置为'test'
时,Sinatra将按默认方式运行。由于Sinatra的工作方式,您必须确保在解释器加载定义应用程序的文件之前正确设置了此环境变量(即,它在创建应用程序类时检查此项,而不是在每次请求时检查此项)。不,不是这样。rspec可以使用-b选项显示完整的回溯跟踪,但我一点也没有从西纳特拉得到任何例外,关于回溯追踪,我也有这个问题。你解决了吗?谢谢!这对我来说是可行的,我只是像“RACK_ENV=testbundle exec rerun-cx rspec”一样运行rspec。异常的回溯在terminalYes中很好地呈现!我只是把ENV['RACK\u ENV']='test'
放在我的test\u helper.rb
文件的顶部。