Testando seu código em várias versões de dependência
ATUALIZAÇÃO 1: Se você, como nós, tem uma gem pública, existe a possibilidade de usar o Travis CI para verificação em várias versões de Rails e Rubies.
ATUALIZAÇÃO 2: deve-se usar o comando DO do RVM https://rvm.io/set/do/
Preciso verificar se o Brazilian Rails funciona em várias versões do Rails, 2.3.x, 3.0.x, 3.1.x e 3.2.x e Ruby 1.8.7 e 1.9.x. Como faz?
Com RVM, seria:
$ rvm 1.8.7@rails23x,1.8.7@rails30x,1.8.7@rails31x,1.8.7@rails32x,[até],1.9.3@rails32x do rake
Claro, existe um script automatizando isto, mas ainda sim é feio d+.
Uma solução, seria usar o infinity_test, mas o Brazilian Rails tem testes em TestUnit e também em RSpec e como o infity_test é para execução em apenas um “ambiente”, não sei se irá funcionar (não testei)
Outra é usar o Appraisal, que se integra com o Bundler e Rake, o que fica bastante flexível.
Seguindo os passos conforme indicado no README do projeto, no meu ambiente fico com apenas um gemset por versão de Ruby.
$ rvm 1.8.7@brazilianrails,1.9.1@brazilianrails,1.9.2@brazilianrails,1.9.3@brazilianrails do rake test_spec
Para quem não separa as instalações por gemset, usando apenas o default, fica ainda mais limpo.
$ rvm 1.8.7,1.9.1,1.9.2,1.9.3 do rake test_spec
E se seguir a sugestão de David Czarneck, basta criar uma tarefa Rake,
1
2
3
4
5
6
7
8
9
10
11
# Rakefile
desc "Ruby test units and RSpec"
task :test_spec do
Rake::Task.execute["test"]
Rake::Task.execute["spec"]
end
desc "Runs tests on Ruby 1.8.7 and 1.9.2"
task :test_all do
system "rvm 1.8.7@brazilianrails,1.9.1@brazilianrails,1.9.2@brazilianrails,1.9.3@brazilianrails do rake test_spec"
end
e executar:
$ rake test_all
Referências: