Ruby on rails Errno::EACCES:运行rake test:models时,权限被拒绝@unlink_internal
我在玩rails 4。我刚刚为我的模型创建了非常简单的测试,但当我尝试执行“rake测试:模型”时,我得到了以下错误:Ruby on rails Errno::EACCES:运行rake test:models时,权限被拒绝@unlink_internal,ruby-on-rails,rake,Ruby On Rails,Rake,我在玩rails 4。我刚刚为我的模型创建了非常简单的测试,但当我尝试执行“rake测试:模型”时,我得到了以下错误: 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_hel
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)
“/tmp/db”是我可以完全访问个人笔记本电脑的目录
你知道这个问题的根源是什么吗?我的
测试.sqlite3
表也有同样的问题,对我有效的方法是复制我的开发.sqlite3
表并重命名它测试.sqlite3
。我希望这对您有用。我能够绕过此错误的一种方法是使用
rake db:migrate rails_env=test
这在my test.sqlite3上生成了必要的迁移
我相信rails_env的默认设置是“dev”,但这可能会有所不同。我对rails还是很陌生,但我希望这会有所帮助。这对我来说也很有用——进行重构,然后使用文件资源管理器进行验证。这是正确的方法。迁移必须在希望使用它的特定环境中完成。可能默认值是development而不是dev,无论如何,在执行rails db:reset时,我也不走运。我得到了权限拒绝错误。
rake db:migrate rails_env=test