def test_creates_entry log_test_name # Rest of your test code goes here # ... end
test/test_helper.rb
ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require 'test_help' module Test::Unit::Assertions def assert_block(message="assert_block failed.") # :yields: _wrap_assertion do if (! yield) logger.debug("\e[0;41mFailure:\e[m #{message}") raise Test::Unit::AssertionFailedError.new(message.to_s) else logger.debug("\e[0;32mSuccess\e[m") end end end end class Test::Unit::TestCase # Transactional fixtures accelerate your tests by wrapping each test method # in a transaction that's rolled back on completion. This ensures that the # test database remains unchanged so your fixtures don't have to be reloaded # between every test method. Fewer database queries means faster tests. # # Read Mike Clark's excellent walkthrough at # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting # # Every Active Record database supports transactions except MyISAM tables # in MySQL. Turn off transactional fixtures in this case; however, if you # don't care one way or the other, switching from MyISAM to InnoDB tables # is recommended. self.use_transactional_fixtures = true # Instantiated fixtures are slow, but give you @david where otherwise you # would need people(:david). If you don't want to migrate your existing # test cases which use the @david style and don't mind the speed hit (each # instantiated fixtures translates to a database query per test method), # then set this back to true. self.use_instantiated_fixtures = false def logger RAILS_DEFAULT_LOGGER end def log_test_name(test_name=nil) test_name = caller[0].match(/`(test_[a-z_]+)'$/) unless test_name logger.debug "\n\e[1m#{self.class}::\e[0;31m#{test_name}\e[m\n" end end class ActionController::Integration::Session def logger RAILS_DEFAULT_LOGGER end def log_step_name(step_name=nil) step_name = caller[0].match(/`(test_[a-z_]+)'$/) unless step_name logger.debug "\n\e[1m#{step_name}\e[m" end end