Teste de gem rubi antes da implantação
Pergunta
Estou criando uma jóia que tem
- Vários scripts no diretório de bin
- as classes de utilidade no diretório LIB
- e vários testes no diretório de teste
supertool bin toolA toolB lib supertool supertool.rb helper.rb test tc_main.rb tc_etc.rb
Agora, para executar os testes antes mesmo de instalar a jóia, tenho o seguinte snippet no topo dos meus testes:
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
Isso parece tedioso, especialmente se eu tiver que colocá -los nos scripts no diretório da bin também. Existe uma maneira melhor de configurar o ambiente para que possamos testar as gemas antes que elas sejam instaladas? Tenho certeza de que é algo simples que eu simplesmente não consigo encontrar. Um link simples para o lugar certo ajudaria muito :)
Solução
Não tenho certeza do que você está tentando alcançar com esse script. Não parece ter nada a ver com gemas ...
É para que você possa correr ruby tc_main.rb
De dentro do diretório de teste (ou ruby test/tc_main.rb
do diretor da base) e definiu o caminho de carga adequadamente? Nesse caso, aqui está uma maneira muito melhor:
No seu diretório de teste, crie um test_helper.rb
Arquivo. Nesse arquivo, coloque isso
$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
E em todos os seus arquivos de teste, defina a primeira linha para
require 'test_helper'
Se você tiver subdiretos dentro do seu diretor de teste, os arquivos nesses subdirs podem fazer
require '../test_helper'
Outras dicas
Dê uma olhada no Hoe Gem, é um ajudante para outras jóias.