我想知道如何在我的rails應用程序中設置測試。當我運行rake test
時,首先奇怪的是,它對我的開發者發起了一堆CREATE TABLE
。數據庫(哼..不喜歡這..)。所以我推出rake test RAILS_ENV=test
,我甚至嘗試bundle exec rake test RAILS_ENV=test
。現在,CREATE TABLE
是對我的測試數據庫,但都失敗,此錯誤:使用`rake test`的問題
** 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
可以正常工作,但是當我嘗試使用當前版本的應用程序時,它始終會對我的開發者進行啓動。分貝,根本不工作。我試圖編輯測試文件,恢復它們,嘗試用不同的方式刪除/設置測試數據庫,嘗試不同的耙式版本,比較我當前應用程序的一側和另一側的許多事情。 ..什麼都沒發現..幫助!
EDIT 2
聽起來有點扯,但它是正常的,不rake
比rake test
同樣的事情?
編輯3
聽起來賠率,而我繼續在什麼是錯的工作,我知道每一次我運行rake test
,它的東西的開發環境,而不是測試一個(看日誌)。它在我的計算機OSX上和我們的服務器FreeBSD上爲所有Rails 3.0.7應用程序執行此操作。你確定rake test
應該默認在測試環境中工作嗎?
編輯4
請幫忙!
編輯5 - 總結
當運行在我的電腦或我們對Rails 3.0.7與不同的應用程序服務器上rake test
它具有下列功能:
- 運行
CREATE TABLE
和對開發INSERT INTO
遷移。 D b。 - 請勿清空開發者。 D b。
- development.log獲取寫入不是test.log
- 也是一個問題與錯誤
unknowm comman 't'
與一個特定的應用程序。
編輯6 - DB配置從默認
沒有什麼變化尚未:https://gist.github.com/1006199
EDIT 7
rake db:test:prepare --trace
- >沒有休息(但保持印刷(FIRST_TIME) https://gist.github.com/1007340
RAILS_ENV="test"
for rake,一切都很好,它寫在測試日誌上秒。
ruby -I test test/unit/category_test.rb
與rake
相同的錯誤,但沒有在dev上寫入。或測試日誌。
你確定你沒有不小心把這個測試的第5行的空間。錯誤消息是說在文件test/unit/category_test.rb的第5行有一個不明白的命令「t」。如果你不小心鍵入了一個空格(如t est)或者在線上有一個額外的「t」,就可能發生這種情況。 – 2011-06-01 11:03:37
你的環境中必須有一些奇怪的東西,因爲'rake test'通常知道它應該在'test'環境。我從來不需要手動強制RAILS_ENV。你修改了什麼嗎?當您創建一個新的Rails應用程序並創建相同的單一資源時,是否會再現此錯誤? – Arsen7 2011-06-01 11:41:41
與你的問題沒有關係,但是當你剛開始進入測試時,爲什麼不試一試RSpec呢? – 2011-06-01 12:34:35