2014-11-25 17 views
6

Raylar ile oynuyorum 4. Sadece model için çok basit bir test oluşturdum ama "rake testi: modeller" i çalıştırmaya çalıştığımda hata: aşağıdaki gibiErrno :: EACCES: İzin yok rake test çalıştırırken @ unlink_internal: modeller

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) 

Testim veritabanı yapılandırması görünür:

test: 
    adapter: sqlite3 
    database: /tmp/db/new.sqlite3 
    pool: 5 
    timeout: 5000 

"/ tmp/db" benim kişisel dizüstü tam erişime sahip dizindir.

Bu sorunun kaynağı ne olabilir?

cevap

5

test.sqlite3 tablomda da aynı sorun vardı ve benim için ne işe yaradıysa, development.sqlite3 tablomun bir kopyasını oluşturup test.sqlite3 olarak yeniden adlandırıyorum. Umarım bu senin için çalışır.

+0

Bu benim için de çalıştı - refactor'u yapın ve ardından dosya gezgini kullanarak doğrulayın. – cyclical

8

bir yolu ben bu

Ben rails_env için varsayılan ayar olduğuna inanıyoruz "dev" ama bu benim test.sqlite3 gerekli göçler oluşturulan

rake db:migrate rails_env=test 

kullanıyordum bu sorundan elde edebildi değişebilir. Raylara hala çok yeni geldim ama umarım bu yardımcı olur.

+0

Bu doğru bir yaklaşımdır. Göç, kullanılmasını istediği belirli bir ortamda yapılmalıdır. – iGbanam

+0

belki de varsayılan geliştirme değil dev, ne zaman, benim için ya da raylar db yaparken hiçbir şans: sıfırlama izni reddedildi olsun. – barlop

İlgili konular