Ao trabalhar com Ruby On Rails e RSpec , você pode querer compartilhar seus resultados de teste com seus colegas de equipe. Uma captura de tela do terminal simplesmente não funciona. Vamos fazer RSpec gerar uma página html para nós.
$ rspec --format html --out rspec_results.html
Dependendo de seus testes, pode parecer Rastafari se você tiver testes pendentes e falhando. Felizmente para nós, você pode filtrá-los.
Aqui está uma captura de tela dos resultados de um aplicativo Rails no qual estou trabalhando ( SoPR )
Automatizando o processo
Existem duas maneiras de fazer isso.
Usando o arquivo de configuração RSpec
Presumo que você tenha um arquivo no diretório raiz do seu projeto. Vamos adicionar o seguinte:.rspec
--format html
--out rspec_results.html
Agora você deve ser capaz de apenas executar o rspec
comando e obter os mesmos resultados.
Escrevendo uma Tarefa Rake
Como alternativa, você também pode escrever uma tarefa Rake simples. Vamos escrever um novo arquivo dentro do nosso projeto Rails.lib/tasks/rspec_html.rake
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = '--format html --out reports/rspec_results.html'
end
namespace :rspec_report do
desc 'Run all specs and generate RSpec report in HTML'
task :html => :spec
desc 'Run all specs, generate RSpec report and open it in the browser'
task :browser do
Rake::Task[:spec].invoke
`open reports/rspec_results.html` # This only works if running OS X.
end
end
Gist disponível aqui .
Se executarmos , veremos duas novas tarefas de rake:$ rake -T
rake rspec_report:html
rake rspec_report:browser
O primeiro executará todas as especificações e gravará o relatório . O segundo irá executar a primeira tarefa e abrir o relatório no navegador (funciona apenas no OS X).rspec:html
reports/rspec_results.html
rspec:browser
Felicidades!