Ruby gem testing avant déploiement
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:)
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.