Resultados do teste RSpec em HTML

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 )

Captura de tela

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 rspeccomando 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:htmlreports/rspec_results.html
rspec:browser

Felicidades!