2011-07-07 23 views
14

Me gustaría tener pruebas de unidad de color de salida en mi entorno de desarrollo. Sin embargo, no puedo hacer que funcione en Linux (Debian y Ubuntu). Cuando se incluyen las siguientes librerías:Cómo colorear las pruebas unitarias con lib minitest o Test: Unit?

require 'minitest/autorun' 
require 'minitest/unit' 
require 'minitest/pride' 

me sale:

/usr/local/rvm/gems/ruby-1.9.2-p136/gems/minitest-2.3.1/lib/minitest/pride.rb:35:in `<top (required)>': undefined method `output' for MiniTest::Unit:Class (NoMethodError) 

causada por el código:

MiniTest::Unit.output = PrideIO.new(MiniTest::Unit.output) 

que he visto un Rspec variant de trabajo. Desafortunadamente, mi conocimiento de Ruby no es suficiente para ver las diferencias.

Respuesta

13

paso 1: utilizar la última versión de la gema (creo que se fijará en Ruby 1.9.3)

gem install minitest 

paso 2: require "minitest/orgullo" en la línea de comandos, no en su código

ruby -rminitest/pride your_ruby_script.rb 

.. y en su código simplemente requieren 'minitest/autorun'

require 'minitest/autorun' 

Si utiliza Rubymin e, simplemente agregue

-rminitest 

en la configuración predeterminada de las pruebas. => la configuración le gustaría

-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -rminitest/pride 
+0

Gracias. Sin embargo, exigir orgullo en mi código en lugar de en la línea de comandos funcionó bien. – Mosselman

1

Actualmente uso purdytest con 1.9.2

14

Dar turn un torbellino.

Agregue esto a su Gemfile:

group :test do 
    gem 'turn', :require => false 
end 
+0

Cabe mencionar que, en este momento, turn * no * es compatible con MiniTest versión 5 y posteriores. –

+0

Tienes razón, Matt. El soporte de MiniTest v5 está siendo rastreado aquí: https://github.com/turn-project/turn/issues/127 –

+1

Para MiniTest 5+, solo 'minitest-rg' lo hizo por mí. – Abdo

-1
$ gem install mynyml-redgreen --source http://gemcutter.org 

# in your test file 
require 'redgreen' 

Redgreen y convertir el trabajo muy bien en conjunto con los demás, por cierto

3

sólo tiene que añadir estas líneas a su archivo test_helper.rb después de requerir 'rieles/test_help'

require "minitest/reporters" 
Minitest::Reporters.use! 

en sus Gemfile añadir

gem 'minitest-reporters', '~> 1.0.7' 

Esto hará que su prueba de rastrillo para estar en rojo y verde, pero también muestra la traza inversa.para deshacerse de todos esos registros adicionales backtrace agregar esto a su Gemfile entonces paquete:

gem 'mini_backtrace' 

continuación, en config/inicializadores/backtrace_silencers.rb añadir esta línea a cortar todo el material adicional RVM

Rails.backtrace_cleaner.add_silencer { |line| line =~ /rvm/ } 

Espero que funcione para usted, avíseme si necesita más detalles.