Errno :: EACCES:运行rake test:models时,权限被拒绝@ unlink_internal

mic*_*ski 6 rake ruby-on-rails

我正在玩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)
Run Code Online (Sandbox Code Playgroud)

我的测试数据库配置如下所示:

test:
  adapter: sqlite3
  database: /tmp/db/new.sqlite3
  pool: 5
  timeout: 5000
Run Code Online (Sandbox Code Playgroud)

"/ tmp/db"是我个人笔记本电脑上完全访问权限的目录.

有什么想法可能是这个问题的根源?

小智 8

我能够解决这个错误的一种方法是使用

rake db:migrate rails_env=test
Run Code Online (Sandbox Code Playgroud)

这在我的test.sqlite3上生成了必要的迁移

我相信rails_env的默认设置是"dev",但这可能会有所不同.我对rails很新,但我希望这会有所帮助.


小智 5

我的test.sqlite3表遇到了同样的问题,对我有用的是复制我的development.sqlite3表并重命名test.sqlite3.我希望这适合你.