我们在Rails下有一个大型多开发人员项目,我们正在使用模型和控制器的测试。现在,开发人员必须在运行测试之前切换“测试”环境的数据库参数以匹配其本地开发环境。我想知道是否有办法在'test'以外的任何环境中运行这些测试?
例如我们在database.yml:
中test:
database: ...
host: ...
username: ...
password: ...
...
dev-one:
...
dev-two:
...
我在文档中找不到任何内容,但也许我在找错了地方。有什么想法吗?
谢谢!
答案 0 :(得分:1)
截至目前,这仍然不起作用。我提交了一个问题:https://github.com/rails/rails/issues/21478。
我将使用更新编辑此答案
答案 1 :(得分:0)
只是在您要运行测试时明确指定环境。你事先需要准备几个。
假设您的新环境将被命名为“testjohn”(大概是名为John的开发人员)。然后:
1-将 config / environments / test.rb 复制到 config / environments / testjohn.rb
2-将相应的DB节添加到 config / database.yml (从测试节复制它,重命名,然后可能更改数据库名称,密码和其他数据)。 我(相当简单)的例子使用了这个:
testjohn:
adapter: sqlite3
database: db/testjohn.sqlite3
pool: 5
timeout: 5000
3-按如下方式运行测试:
RAILS_ENV="testjohn" rake db:migrate
RAILS_ENV="testjohn" rake test:units
顺便说一下,由于RAILS_ENV只是一个环境变量,您可能有一个预先设置它的脚本,甚至让每个开发人员在他的 .profile 或任何文件中配置自己的RAILS_ENV变量。这样他们就可以运行 rake test:units 并在他们的个性化环境下自动执行测试。