I have a test that looks like this:

require 'test/unit'

  class My_Test < Test::Unit::TestCase
    def test_1
      assert_equal('10', '10') # okay
      assert_equal(10, '10')   # failure
    end
  end

The result looks like this:

  Loaded suite test2
  Started
  F
  Finished in 0.00906 seconds.

    1) Failure!!!
  test_1(My_Test) [test2.rb:6]:
  <10> expected but was
  <10>

  1 tests, 2 assertions, 1 failures, 0 errors

It's not immediately obvious why <10> is not equal to <10>.

1) Is there anything I can do to get a more useful assertion failure
   message?
2) When I want to differentiate like this in my own code, I use #inspect
   instead of #to_s.  I'm not sure if that's appropriate here, since
   #inspect works well for integers and strings and regexes, but might
   not work well with user-defined types.  Could Test::Unit use #inspect
   instead of #to_s, and would there be any unwanted side-effects?
3) Runit has the same problem; can I work around this in Runit?

Also, I noticed that Test::Unit 0.1.8 has different output from 0.1.6.
1) What was the reason for the change?
2) Why is there a carriage return after the word "was"?
3) Is it possible to get Test::Unit to print the names of the tests as
   they are run, like it used to?

Paul