我试图在我的应用中编写一些集成测试以对付款进行条形码处理。我找到了一些很好的教程:
http://www.jeffthomas.xyz/integration-tests-with-stripe/
我已经像本教程一样使所有内容都一样,但是当我运行我的规范时,他们给了我以下错误:
Daemon has started successfully
Killing server at ./stripe-mock-server.pid
Stopped PID: 5650 at ./stripe-mock-server.pid
Coverage report generated for RSpec to /home/mateusz/projekty/bp-web/coverage. 351 / 437 LOC (80.32%) covered.
/home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `async_exec': PG::ConnectionBad: PQconsumeInput() server closed the connection unexpectedly (ActiveRecord::StatementInvalid)
This probably means the server terminated abnormally
before or while processing the request.
: SELECT COUNT(*)
FROM pg_class c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','v','m') -- (r)elation/table, (v)iew, (m)aterialized view
AND c.relname = 'schema_migrations'
AND n.nspname = ANY (current_schemas(false))
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `block in exec_no_cache'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract_adapter.rb:466:in `block in log'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activesupport-4.2.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract_adapter.rb:460:in `log'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `exec_no_cache'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:584:in `execute_and_clear'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:160:in `exec_query'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql/schema_statements.rb:105:in `table_exists?'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:843:in `get_all_versions'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:855:in `needs_migration?'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:397:in `load_schema_if_pending!'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:412:in `block in maintain_test_schema!'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:640:in `suppress_messages'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:417:in `method_missing'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/activerecord-4.2.0/lib/active_record/migration.rb:412:in `maintain_test_schema!'
from /home/mateusz/projekty/bp-web/spec/rails_helper.rb:11:in `<top (required)>'
from /home/mateusz/projekty/bp-web/spec/features/billing_details_update_spec.rb:1:in `require'
from /home/mateusz/projekty/bp-web/spec/features/billing_details_update_spec.rb:1:in `<top (required)>'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1226:in `load'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1226:in `block in load_spec_files'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1224:in `each'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/configuration.rb:1224:in `load_spec_files'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:97:in `setup'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:85:in `run'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:70:in `run'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/lib/rspec/core/runner.rb:38:in `invoke'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/gems/rspec-core-3.2.0/exe/rspec:4:in `<top (required)>'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/bin/rspec:23:in `load'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/bin/rspec:23:in `<main>'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/bin/ruby_executable_hooks:15:in `eval'
from /home/mateusz/.rvm/gems/ruby-2.2.0-preview1/bin/ruby_executable_hooks:15:in `<main>'
有什么想法吗?
答案 0 :(得分:2)
我解决了这个问题,但忘记在这里写答案:
https://github.com/rebelidealist/stripe-ruby-mock/issues/202#issuecomment-81462909
答案 1 :(得分:0)
如果想要在rails已经初始化之后生成服务器(例如在spec/rails_helper.rb
或其他地方),你可以告诉活动记录重新连接它将起作用:
StripeMock.spawn_server
ActiveRecord::Base.connection.reconnect!