2011-09-05 78 views
0

所以我試圖測試一個控制器,但遇到問題。部分代碼需要加載文件,但我收到此錯誤:Errno :: ENOENT:運行rspec測試出錯,說文件不存在,但它確實

Errno::ENOENT: 
     No such file or directory - ./public/licenses/58efcffc3d8441fcc0627164a8b1350aFCV5Hmashup_lic.xml 

但是,文件確實退出。當我在瀏覽器中運行它時,它工作得很好,沒有問題(但我仍然想寫一個測試)。

我不知道這與它有什麼關係,但我在運行測試時使用了數據庫。我知道這不是我應該怎麼做,但我不知道其他任何方式。

任何幫助都會很棒。謝謝。

回答

0

隨着調試工具:

在您的測試,只是檢查該文件的語句之前,嘗試添加

puts "list dir " + `ls ./public/licenses/` 

,看看文件是真的存在。

可能是從測試用戶ID的權限問題

因爲運行時,你在哪裏當前的工作目錄是假設,也可能是該文件不居然還有...

+0

是的,它確實抱怨說它不在那裏。但是,當我運行該應用程序,它工作正常,並打印出該目錄中的所有文件?爲什麼當我運行rspec時不會識別它們? – user727403

1

最有可能測試是錯誤的。嘗試在其中放置一個puts File.dirname('.')以確保您從您認爲自己的目錄運行。

相關問題