Donc, je suis en train d'écrire des tests rspec et je suis gêné par mon manque de compréhension Ruby.Ruby nécessite 'fichier' et l'emplacement relatif
J'ai une structure de fichier qui ressemble à ce qui suit:
- GUI_Tests/Tests/test_spec.rb
- GUI_Tests/windows_gui.rb
- GUI_Tests/upload_tool.rb
lorsque j'exécute spec pour le fichier test_spec.rb, j'ai besoin que le fichier upload_tool soit inclus comme suit:
spec -r ../upload_tool -fs test_spec.rb
Ensuite, le upload_tool nécessite windows_gui.rb, comme ceci:
require '../windows_gui'
Ma question est, pourquoi donc je dois faire référence windows_gui.rb par rapport à test_spec.rb (nécessitant l'../) plutôt que le upload_tool.rb? Cela me semble faux, je vais vouloir utiliser le fichier upload_tool.rb hors contexte des spécifications du test, ce qui signifie qu'il faut changer chaque fois.
De toute évidence, il me manque quelque chose, mais si je ne référence pas par rapport à la spécification de test, je reçois un fichier introuvable erreur.
Désolé d'être si ignorant ici, mais je viens les mains vides. Toutes les pensées ont apprécié.
BB
Ne vous sentez pas mal - je trouve que faire face à chemins relatifs l'une des choses les plus ennuyeuses à propos de ruby. Je l'ai énuméré dans [quelles sont les choses que vous aimeriez améliorer dans la langue ruby] (http://stackoverflow.com/questions/585457/what-are-the-things-you-would-like-improved-in -the-ruby-language/3261063 # 3261063) –
Août 2012 - Notez que cet article a maintenant deux ans. La plupart des gens sont maintenant sur 1.9.2. Voir cet article http://stackoverflow.com/questions/9345412/relative-file-path-in-rspec aussi pour la meilleure solution (fév 2012) –