我正在使用rails 4.我刚刚为我的模型创建了非常简单的测试,但是当我尝试执行“rake test:models”时,我得到以下错误:
C:\rails\project>rake test:models
DL is deprecated, please use Fiddle
rake aborted!
Errno::EACCES: Permission denied @ unlink_internal - /tmp/db/new.sqlite3
C:/rails/project/test/test_helper.rb:3:in `<top (required)>'
C:/rails/project/test/models/admin_test.rb:1:in `<top (required)>'
Tasks: TOP => test:models
(See full trace by running task with --trace)
我的测试数据库配置如下所示:
test:
adapter: sqlite3
database: /tmp/db/new.sqlite3
pool: 5
timeout: 5000
“/ tmp / db”是我可以在个人笔记本电脑上完全访问的目录。
任何想法可能是这个问题的根源?
答案 0 :(得分:8)
我能够解决此错误的一种方法是使用
rake db:migrate rails_env=test
这会在我的test.sqlite3上生成必要的迁移
我认为rails_env的默认设置是&#34; dev&#34;但这可能会有所不同。我对rails很新,但我希望这会有所帮助。
答案 1 :(得分:5)
我的test.sqlite3
表遇到了同样的问题,对我有用的是制作development.sqlite3
表的副本并将其重命名为test.sqlite3
。我希望这适合你。