2013-03-15 1 views
1

Je suis en train d'exécuter rake sur un fichier ruby ​​où je suis censé recevoir une erreur pour que je puisse le déboguer comme un exercice. Cependant, l'erreur que je reçois n'est pas l'erreur que je suis supposé recevoir. Je reçois ce qui suit et je passe du temps à interpréter ce que je dois corriger.Problèmes d'exécution de rake avec rspec et ruby ​​

~Desktop/learn_ruby-master/00_hello$ rake 
(in /~Desktop/learn_ruby-master) 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file --  hello (LoadError) 
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from ~Desktop/learn_ruby-master/00_hello/hello_spec.rb:117:in `<top (required)>' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run' 
    from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in  `block in autorun' 

rake abandonné!

/usr/bin/ruby1.9.1 -S rspec ~Desktop/learn_ruby-master/00_hello/hello_spec.rb - I/~Desktop/learn_ruby-master/00_hello -I/~Desktop/learn_ruby-master/00_hello/solution -f  documentation -r ./rspec_config failed 

Tasks: TOP => default => spec 
( See full trace by running task with --trace) 

Voici le code que je suis en cours d'exécution rake sur

require "hello" 

describe "the hello function" do 
    it "says hello" do 
    hello.should == "Hello!" 
    end 
end 

describe "the greet function" do 
    it "says hello to someone" do 
    greet("Alice").should == "Hello, Alice!" 
    end 

    it "says hello to someone else" do 
    greet("Bob").should == "Hello, Bob!" 
    end 
end 

Répondre

1

Ruby dit tout: « Vous ne trouvez pas le nom de fichier bonjour.rb sur le chemin de chargement de la bibliothèque ». Il vous manque le fichier hello.rb ou Ruby ne le trouve pas. L'avez-vous vraiment sur le disque dans le répertoire que vous exécutez? Si c'est ailleurs, vous devez fournir un chemin relatif.

Retirez également les espaces de la première ligne, je suppose que vous avez gargabe là-bas. Il devrait y avoir un seul espace entre - et bonjour dans le message d'erreur.

+0

lzap, merci. L'erreur que vous mentionnez est ce sur quoi je suis supposé travailler et j'ai suivi les étapes mentionnées dans l'exercice mais le message d'erreur est différent de celui cité. De plus, lorsque je crée le fichier hello.rb que Ruby veut (dans le même répertoire), le message d'erreur ne change pas. En outre, même lorsque je supprime l'instruction "require" Hello "", je continue à recevoir ce message d'erreur. Si c'est exactement ce que vous dites c'est alors comment je pointerais rake à son chemin puisqu'il ne semble pas trouver hello.rb dans le même répertoire? Merci encore. – foxfire

+0

Ruby 1.8 essaie de trouver dans le répertoire courant, Ruby 1.9+ ne le trouve pas. Essayez d'ajouter require "./hello" là. – lzap

+0

quand je l'ai fait exactement comme vous le dites le message d'erreur reste inchangé. Quand j'ajoute le ./ devant la chaîne, j'obtiens: /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:34:in 'require': nombre d'arguments incorrect (0 pour 1) (ArgumentError)
Et puis je reçois exactement le même message d'erreur que ci-dessus en commençant par
de /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in 'require ' – foxfire

2

J'ai eu le même problème (en suivant exactement le même tutoriel). Je viens de passer trois jours de ma vie à essayer de comprendre. Le problème était que l'un de mes dossiers dans le chemin de 'hello.rb' avait un espace entre deux mots. Sérieusement, c'était tout. Le chemin de rubis ne pouvait pas le ramasser, peu importe ce que j'ai fait (sauf changer d'espace). Uggh. Leçon apprise, ne nommez rien, n'importe où avec un espace à partir de maintenant.