2010-12-09 8 views
1

[alerte n00b] que je fais probablement tout faux ... RSpec sorties cet échec:Connexion à MySQL DB Ruby Rspec

1)...          #skipped irrelevant info 
    Failure/Error: graph.read_db('example1') 
    Not connected to any DB.     #error msg 
    #./prim.rb:135:in 'read_db' 
    #./prim_spec.rb:171:in 'block (2 levels) in <top (required)>' 

J'ai mis en place une base de données MySQL sur la même machine . Le programme fournit un algorithme pour calculer le spanning tree minimum d'un graphique. Possède des méthodes pour les E/S de fichiers, les E/S de base de données utilisant ActiveRecord, etc. Tous FONCTIONNE BIEN sauf les tests RSpec. code (parties non pertinentes omis):

prim_spec.rb

describe PGraph, "online" do 
    before (:all) do 
     ActiveRecord::Base.establish_connection(
     :adapter => "mysql2", 
     :host => "localhost", 
     :username => "root", 
     :password => "xxxxx", 
     :database => "rubytasks") 
     #the exact same statement works perfectly when running the program itself, but fails in RSpec 
    end 
    before (:each) do 
     @graph = PGraph.new 
    end 

    it "should correctly retrieve data from database" do 
     @graph.read_db('example1') #line 171 
     #business part goes here 
    end 
end 

prim.rb

class PGraph 
    def read_db(graphID) 
     #the error which is raised (line 135): 
     raise "Not connected to any DB." unless ActiveRecord::Base.connected? 
     #reading goes here 
    end 
end 

connexion et la manipulation PGraph est effectuée en ui.rb. Alors, euh, quelle est la bonne façon d'accéder à une vraie base de données (je suis fainéant) pour tester (ou est le problème ailleurs?)? De préférence quelque chose de simple, puisque c'est juste une tâche scolaire. Et sans jouer avec Rails ou d'autres gemmes. PS: J'utilise les versions les plus récentes de toutes les gemmes et du serveur. Sur Windows 7 x86. Ruby 1.9.2. Merci.

Répondre

0

Je suppose que tout n'est pas chargé correctement lorsque vous exécutez vos tests rspec. Toutes les classes qui configurent votre connexion à la base de données sont-elles chargées correctement et avec les bons paramètres lors de l'exécution de rspec?

+0

Je ne sais pas. Comment puis-je vérifier cela? – 0ph3l14