当 运行 与 Rails 中的 RSpec 规范时,如何通过 rails 控制台或外部脚本同时访问 test_database?

When running specs with RSpec in Rails, how do I access the test_database concurrently via the rails console or an external script?

使用 RSpec,我正在尝试测试调用外部 python 脚本的 Rails 程序。当 运行 规范时,RSpec 可以访问测试数据库 rails_program_test。但是,python 脚本无法访问数据库 rails_program_test

此外,虽然 运行 rails 在单独的终端中进行控制台测试,但查询显示测试数据库中没有记录,即使规范报告记录确实存在。最后,当我将 RAILS_ENV 切换到开发时,python 脚本可以访问 rails_program_development 数据库。有没有办法在规范之外访问测试数据库?

这可能是因为 Rails 应用正在使用事务固定装置。它们在每次测试结束时回滚,因此对外部进程永远不可见。

您可能想查看 DatabaseCleaner gem 以了解非事务性方法,但您的用例听起来很不寻常。