我想知道如何在我的rails应用程序中设置测试。当我运行rake test
时,第一件奇怪的事情是,它针对我的开发工具启动了一堆CREATE TABLE
。数据库(哼..。不要这样.)。所以我启动了rake test RAILS_ENV=test
,甚至尝试了bundle exec rake test RAILS_ENV=test
。现在,CREATE TABLE
针对我的测试数据库,但都失败了,出现了以下错误:
** Execute test:units
test/unit/category_test.rb:5:in `test': unknown command 't' (ArgumentError)
from test/unit/category_test.rb:5:in `<class:CategoryTest>'
我在Rails 3中使用了基本的生成器,不改变任何东西。所以我在caterogy_test.rb里有这个:
require 'test_helper'
class CategoryTest < ActiveSupport::TestCase
# Replace this with your real tests.
test "the truth" do
assert true
end
end
我使用Rails 3.0.7和基本配置。
有什么想法吗?
编辑
我正变得疯狂,做了很多尝试,似乎都没有用。当我用一些东西启动一个新应用程序时,rake test
工作得很好,但是当我在当前的应用程序上尝试这个应用程序时,它总是针对我的开发工具启动的。db和根本不工作。我试着编辑测试文件,把它们还原回来,尝试用不同的方式删除/安装测试db,尝试不同的rake版本,在我当前的应用程序的一边比较很多东西,在另一边比较一个全新的.什么都没找到。救命啊!
编辑2
听起来很蹩脚,但是rake
和rake test
做同样的事情是正常的吗?
编辑3
听起来很可能,在我继续研究出了什么问题的时候,我意识到每次我运行rake test
时,它都会在dev环境上做一些事情,而不是在测试环境上(观察日志)。它在我的电脑OSX和我们的服务器FreeBSD上为Rails 3.0.7应用程序做这件事。您确定默认情况下rake test
应该在测试环境上工作吗?
编辑4
请帮帮我!
编辑5-摘要
在我的计算机上或Rails 3.0.7中的服务器上使用不同的应用程序运行rake test
时,它会执行以下操作:
CREATE TABLE
和INSERT INTO
迁移。DB.unknowm comman 't'
。。
编辑6- db配置
默认情况下没有任何变化:https://gist.github.com/1006199
编辑7
rake db:test:prepare --trace
->什么都不会中断(但是继续打印(first_time) https://gist.github.com/1007340
对于RAILS_ENV="test"
来说,一切都很好。它写在测试日志上。
ruby -I test test/unit/category_test.rb
与rake
的错误相同,但在开发中没有写错误。或者测试日志。
发布于 2011-06-01 07:28:35
一堆无序的答案:
编辑:
根据我在编辑中所看到的,从5和更高版本来看,环境文件似乎有些问题。因此,尝试重复检查:* config/environments/test.rb * config/application.rb *config/environments. try。
如果与RAILS_ENV=“测试”,一切都进行得很好,那么我几乎肯定您已经改变了一些默认行为在您的应用程序(吐露,env变量,任何特定的创业板?)
另外,在test/ test _helper.rb中,在文件开头添加RAILS_ENV='test‘,这将强制测试环境。
发布于 2012-11-08 21:00:29
我也收到了同样的错误消息,除了对我说:在‘`test':未知命令'i’(ArgumentError)中。“修复”或“解决办法”只是简单地使用:
$> bundle exec rake test
而不是使用“耙试验”
https://stackoverflow.com/questions/6199859
复制