ruby-on-rails - 在开发环境中运行的所有测试相关任务——Rails 3

标签 ruby-on-rails ruby-on-rails-3 testing development-environment environment

当我运行一个应该在测试环境中运行的任务时,它却在开发中运行。这包括 rake test:(units/functionals/integration)rake db:test:prepare。副作用是每次我运行测试时它都会覆盖我的数据库。我重命名了开发数据库,​​现在它一直提示找不到我的旧数据库(database.yml 中的那个)。在我的 application.rb 顶部的 require 'rails' 中将环境设置为开发。我是否缺少某种简单的配置?

编辑:如果我运行附加了 RAILS_ENV=test 的测试,它们将在测试环境中运行。但是,我实际上无法运行它们,因为我有待处理的迁移(所有迁移)。运行 rake db:test:prepare RAILS_ENV=test 给我相同的挂起迁移错误。

更新:数据库已迁移,我的测试正在进行中。我仍然觉得每次使用 RAILS_ENV=test 运行我的测试并不是正确的方法

更新:我发现如果我将 railties 中的 def env 更改为默认为“test”,环境将变为 test。也就是

def env
  @_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end

最佳答案

spec_helper 中将此行 ENV ||= "test" 更改为 ENV = "test"

如果您正在使用 Capybara 并让 rails server 在开发模式下运行,那么 Capybara 将使用它而不是启动测试实例。

修复可以在这里找到:

How to use the test database with Capybara?

关于ruby-on-rails - 在开发环境中运行的所有测试相关任务——Rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150645/

相关文章:

mysql - WAMP 的 MySQL "lib"和 "include"目录在哪里?

ruby - Rails 记录器格式化 - 插入方法名称调用记录器方法

testing - 开源或免费测试解决方案

ruby-on-rails - Rails3 - 为什么我的 View 加载时间这么长?

search - Rails 3 搜索 : Searchlogic vs Thinking_Sphinx

python - Django 响应没有内容 - 如何调试?

javascript - 要求不按预期行事

ruby-on-rails - 是否可以在 Rails 中使用单个模型管理多个表?

ruby-on-rails - config.exceptions_app 在 rails 中不工作

ruby-on-rails - 从复选框构建数组时 form_for 的语法