2009-08-05 11 views
8

jestem w stanie uruchomić testu Zgrabiarka: funkcjonałami z SQLite3, daje mi ten błąd:szyn: Rake Test: Funkcjonały nie może uzyskać dostępu dB (Sqlite3 na WinXP)

rake aborted! 
Permission denied - db/test.sqlite 

(See full trace by running task with --trace) 

Moja konfiguracja jest na Windows XP. Testy pracowały kilka tygodni temu. Szyny 2.3.2, Prowizja 0.8.7, sqlite3-ruby 1.2.5 klejnoty

Używam Netbeans do programowania, ale nawet gdy jest blisko, nie mogę uruchomić testu z wiersza polecenia.

Sprawdziłem również, że nie ma uchwytów do test.sqlite są otwarte (przez menedżera zadań sysinternals).

Sprawdziłem uprawnienia, są one w porządku.

Próbowałem usunąć plik i utworzyć go ponownie, lub skopiować do innej nazwy pliku bez żadnego szczęścia.

Próbowałem uruchomić polecenie zaraz po uruchomieniu komputera.

Każda pomoc jest doceniana.

Dzięki

+0

inne komendy takie jak rake db: migrate lub purge lub clone działają na tej bazie danych. To tylko test: funkcjonały, które zawodzą. – user62605

Odpowiedz

1

Jeśli używasz pod Cygwin, spróbuj uruchomić to na plikach baz danych:

chmod 777 <your-files> 

Cygwin mogą się mylić o jakie uprawnienia powinny być stosowane.

Tak wiem te uprawnienia są śmieszne, ale tak jest Cygwin czasami ...

+0

Nie Używam systemu Windows. Próbowałem go i nie działa. – user62605

2

Bardzo, bardzo podobne zachowanie z mojej strony: Windows XP, SQLite3, szyny 2.3.4, 0.8.7 Rake, Ruby 1.8 .6

Test grabie

prace (ale nie wierzę, to faktycznie działa test jednostkowy)

testowe natarcia: jednostki

i testy

natarcia: funkcjonałów

zarówno niepowodzeniem z "Permission denied - db/test.sqlite3" Z --trace włączony specyficzny błąd występuje w ../rails-2.3.4/lib/task/databases.rake:370 w linii, która brzmi "File.delete (dbfile), jeśli File.exist? (dbfile)

Tak ... długa historia sho rt ... Skomentowałem to.

To nie jest poprawka, ale wystarczyło hack, aby testy dla mnie zadziałały.

+0

Ta linia wydaje się być również problemem dla mnie ... nie wiem co z tym zrobić! – aardvarkk

3

Właśnie miałem ten problem. Dla mnie było to spowodowane tym, że moja konsola szynowa została otwarta w środowisku testowym. Zamknąłem sesję i nie rzucałem już błędu.

0

I doświadczał tego problemu, jak również i znalazłem winowajcę być inicjator w silniku, który został przeglądając bazę danych podczas obciążenia środowiska i zapobieganie plik sqlite3 przed usunięciem:

module Frame 
    class Engine < ::Rails::Engine 
    isolate_namespace Frame 

    # Engine initializer causing the problem. 
    initializer "frame.wrap_parameters" do 
     ActiveSupport.on_load(:action_controller) do 
     if respond_to?(:wrap_parameters) 

      # This is the problem line, Link is a model and Link.attribute_names 
      # is accessing the DB. 
      wrap_parameters Link, include: Link.attribute_names + [:parent_id] 

     end 
     end 
    end 

    end 
end 

Naprawiłem go poprzez usunięcie wymogu DB z intializatora.

Najdziwniejsze w tym, że testy sprawdzają się podczas uruchamiania silnika, ale nie wtedy, gdy silnik został zamontowany w projekcie, spowoduje to niepowodzenie wszystkich testów projektu.

Powiązane problemy