Question

Je crée un joyau qui a

  • plusieurs scripts dans le répertoire bin
  • les classes d'utilitaires dans le répertoire lib
  • et plusieurs tests dans le répertoire de test
supertool
 bin
   toolA
   toolB
 lib
   supertool
     supertool.rb
     helper.rb
 test
   tc_main.rb
   tc_etc.rb

Maintenant, pour exécuter les tests avant même d'installer la gemme, j'ai l'extrait suivant en haut de mes tests:

base = File.basename(Dir.pwd)
if base == 'test' || base =~ /supertool/
   Dir.chdir('..') if base == 'test'
   $LOAD_PATH.unshift(Dir.pwd + '/lib')
   Dir.chdir('test') if base =~ /supertool/
end

Cela semble fastidieux, surtout si je dois aussi les mettre dans les scripts du répertoire bin. Existe-t-il un meilleur moyen de configurer l'environnement afin de pouvoir tester les pierres précieuses avant leur installation? Je suis sûr que c'est quelque chose de simple que je ne trouve pas. Un simple lien au bon endroit aiderait beaucoup:)

Était-ce utile?

La solution

Je ne suis pas sûr de ce que vous essayez d'atteindre avec ce script. Cela ne semble pas avoir de lien avec les pierres précieuses ...

Est-ce que vous pouvez exécuter ruby ??tc_main.rb à partir du répertoire de test (ou ruby ??test / tc_main.rb à partir du répertoire de base) et le faire définir le chemin de chargement correctement? Si c'est le cas, voici un moyen beaucoup plus agréable:

Dans votre répertoire de test, créez un fichier test_helper.rb . Dans ce fichier, mettez ceci

$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )

Et dans tous vos fichiers de test, définissez la première ligne sur

require 'test_helper'

Si vous avez des sous-répertoires dans votre répertoire de test, les fichiers de ces sous-répertoires ne peuvent que faire

require '../test_helper' 

Autres conseils

Jetez un coup d’œil à hoe gem, c’est un assistant pour les autres gemmes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top