J'ai un problème pour tester ma gemme qui inclut un répertoire lib
, sur JRuby 1.7.4.
Je souhaite tester un fichier situé dans lib/vger/resources/account_manager.rb
Mon fichier de spécifications se trouve dans spec/vger/resources/account_manager_spec.rb
require 'spec_helper'
describe Vger::Resources::AccountManager do
.
.
end
end
J'essaie d'inclure le fichier que je veux tester dans spec_helper.rb
require 'rubygems'
require 'bundler/setup'
require 'vger/resources/account_manager'
require 'vger'
RSpec.configure do |config|
# some (optional) config here
end
Lors de l'exécution du test par la commande rspec spec/vger/resources/account_manager_spec.rb
Je reçois cette erreur:
NameError: uninitialized constant Vger::Resources
const_missing at org/jruby/RubyModule.Java:2631
Il semble que le fichier que je veux tester ne soit pas chargé. Veuillez me dire où je me trompe et où dois-je apporter des corrections.
Mettez à jour manuellement votre CHEMIN DE CHARGE dans spec_helper.rb avant d'appeler require
devrait faire l'affaire. Essayez d'en faire la première ligne de votre spec_helper.rb:
$: << '../lib'
ou
$LOAD_PATH << '../lib'
($:
est un alias pour $LOAD_PATH
)
Vous pouvez ajouter la ligne suivante à votre .rspec
fichier à la racine de l'application: -I lib
Il est également possible d'inclure des fichiers: -r lib/api.rb
Ces options sont décrites comme suit:
-JE CHEMIN
Spécifiez PATH à ajouter à $ LOAD_PATH (peut être utilisé plusieurs fois).
-r, --require PATH
Exiger un fichier.
J'utilise ce qui suit pour mes spécifications ... selon le niveau de votre bibliothèque ...
require_relative '../../lib/module'
RSpec charge Rails environnement, si je me souviens bien, il vous suffit donc d'ajouter aux répertoires de chargement automatique dans votre fichier application.rb
Trouvez cette ligne
# config.autoload_paths += %W(#{config.root}/extras)
décommenter le corriger comme ceci:
config.autoload_paths += %W(#{config.root}/lib)
ça devrait marcher