8
votes

Rails: Test Rake: Les fonctionnaires ne peuvent pas accéder à DB (SQLite3 sur WinXP)

Je ne suis pas en mesure d'exécuter le test Rake Test: Fonctions avec SQLite3, cela me donne cette erreur: xxx

Ma configuration est sous Windows XP. Les tests travaillaient il y a quelques semaines. Rails 2.3.2, Rake 0.8.7, SQLite3-RUBY 1.2.5 GEMS

J'utilise NetBeans pour le développement, mais même quand il est proche, je ne peux pas exécuter le test d'une invite de commande.

J'ai également vérifié qu'aucune poignée à tester.sqlite n'est ouverte (via le gestionnaire de tâches Sysinternals).

J'ai vérifié les autorisations, elles sont ok.

J'ai essayé de supprimer le fichier et de le recréer, ou de copier sur un autre nom de fichier sans aucune chance non plus.

J'ai essayé d'exécuter la commande dès que mon ordinateur est démarré.

Toute aide est apprécié.

merci


1 commentaires

D'autres commandes telles que Rake DB: migrer ou purger ou clone travaillent sur cette base de données. C'est seulement test: fonctionnaires qui échoue.


5 Réponses :


1
votes

Si vous exécutez sous Cygwin, essayez d'exécuter cela sur vos fichiers de base de données:

chmod 777 <your-files>


1 commentaires

Non, je cours sous Windows. Essayé quand même et ne fonctionne pas.



2
votes

comportement très très similaire sur ma part: Windows XP, SQLite3, rails 2.3.4, Rake 0.8.7, Ruby 1.8.6

Test de rake

fonctionne (mais je ne crois pas que cela exécute réellement le test de l'unité)

Test de râteau: unités

et

Test Rake: Fonctions

Les deux échecent avec une "permission refusée - dB / test.sqlite3" Avec --Trace activé l'erreur spécifique se produit à ../rails-2.3.4/lib/task/databases.rake:370 sur une ligne qui lit "File.Delete (dbfile) si fichier.exist? (Dbfile)

Alors ... longue histoire courte ... je l'ai commentée.

Ce n'est pas une solution, mais il suffisait d'un hack pour obtenir les tests pour travailler pour moi.


1 commentaires

Cette ligne semble être le problème pour moi aussi ... Je ne sais pas quoi faire à ce sujet!



0
votes

Juste un punt, mais avez-vous essayé de changer le chemin dans config / base de données.yml à xxx

i.e. une barre oblique inverse au lieu d'une frontière. Ou même un chemin de style complet DOS. La question pourrait être liée à ce https://rails.lighthouseApp.com/projects/8994/tickets/4153-DBcreate-canot-open-database-for-sqlite3-on-windows-withwcygwin


0 commentaires

3
votes

Je viens d'avoir ce problème. Pour moi, c'était causé par moi avoir mon console de rails ouverte dans un environnement de test. Fermé ma session et il n'a plus jeté l'erreur.


0 commentaires

0
votes

J'écrivais ce problème aussi et j'ai trouvé que le coupable d'être un initialiseur dans un moteur qui interrogeait la base de données lors de la charge de l'environnement et empêche le fichier SQLITE3 d'être supprimé:

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


0 commentaires