123456789_123456789_123456789_123456789_123456789_

News

3.7.7 - 2026-01-01 #version-3-7-7

Fixes

* Fixed a bug that {NoMemoryError} occurred with RBS tests + MSVC Ruby.
* GH-358
* GH-363
* Reported by Nobuyoshi Nakada

Thanks

* Nobuyoshi Nakada

3.7.6 - 2025-12-25 #version-3-7-6

Fixes

* Fixed a bug that `sub_test_case` may cause a runtime error. This 
also covers a minor case.
* GH-359

3.7.5 - 2025-12-24 #version-3-7-5

Fixes

* Fixed a bug that `sub_test_case` may cause a runtime error.
* GH-355

3.7.4 - 2025-12-23 #version-3-7-4

Improvements

* Added support for process based parallel test running. You can use
it by the `--parallel=process` option. You need to specify load
path options (e.g. `-Ilib`). Tests that startup/shutdown (test case
level setup/teardown) are defined run in the same process.
* GH-235
* GH-339
* GH-340
* GH-341
* GH-342
* GH-344
* GH-346
* GH-348
* Co authored by Naoto Ono

* Added support for `worker_id` for the parallel runner. You can
use it in your test, setup/teardown and startup/shutdown (test case
level setup/teardown).
* GH-235
* GH-345
* Co authored by Naoto Ono

* parallel: thread: Improved shutdown (test case level teardown)
timing. As a result, tests that startup (test case level setup) or
teardown are defined now run in the same thread.
* GH-235
* GH-343
* Co authored by Naoto Ono

Fixes

* parallel: thread: Fixed a bug that running tests failed with the
`--verbose` option.
* GH-350
* GH-351

Thanks

* Naoto Ono

3.7.3 - 2025-11-26 #version-3-7-3

Improvements

* Removed duplicated power_assert require code.
* GH-337
* Patch by Nobuyoshi Nakada

Thanks

* Nobuyoshi Nakada

3.7.2 - 2025-11-25 #version-3-7-2

Improvements

* Suppressed warnings from power_assert.
* GH-335
* Patch by Nobuyoshi Nakada

Thanks

* Nobuyoshi Nakada

3.7.1 - 2025-11-03 #version-3-7-1

Improvements

* Used absolute path instead of relative path for autoload.
* GH-311
* GH-325
* Suggested by nicholas a. evans

* Improved compatibility with power_assert 3.0 on older rubies.
* GH-329
* GH-330
* Patch by Jean Boussier

Thanks

* nicholas a. evans
* Jean Boussier

3.7.0 - 2025-07-06 #version-3-7-0

Fixes

* Fixed a bug that {Test::Unit::TestCase} and {Test::Unit::AutoRunner}
aren't loaded when they are redefined by open class before referring
to these constants.
* GH-320
* GH-321
* Reported by Mamoru TASAKA

Thanks

* Mamoru TASAKA

3.6.9 - 2025-06-29 #version-3-6-9

Improvements

* doc: test: Added one-line style to declare {Ractor} test.
* GH-261
* GH-309

* Used `require_relative` instead of `require` for internal library
files.
* GH-311
* GH-312
* GH-313
* GH-315

* Added the `--version` option.
* GH-314
* Patch by MSP-Greg

Thanks

* MSP-Greg

3.6.8 - 2025-04-05 #version-3-6-8

Improvements

* `test-unit`: Added. You can use this instead of creating a custom
test run script.
* GH-288
* GH-289
* GH-291
* Suggested by gemmaro

* Updated the "how to" document.
* GH-292
* GH-293
* GH-294

* Updated the "getting started" document.
* GH-295
* GH-296

* Added support for `.test-unit` configuration file. It's useful for
specifying default options, and is handier than using `.test-unit.yml`.
* GH-300
* GH-302

Fixes

* parallel: thread: Fixed shutdown execution order.
* GH-282

* testcase: Fixed a bug that instance variables added during the test
runs are not garbage collected after each test run.
* GH-235
* GH-303
* Reported by akira yamada

Thanks

* gemmaro

* akira yamada

3.6.7 - 2024-12-17 #version-3-6-7

Fixes

* Fixed a bug that test-unit doesn't work with Ruby < 2.5.

3.6.6 - 2024-12-17 #version-3-6-6

Improvements

* Improved backward compatibility for the {Test::Unit::TestCase#run}
overriding case. In general, we don't recommend it but there are
old scripts that do it. (Mainly, I did it...)
* GH-276
* Reported by Mamoru TASAKA

Thanks

* Mamoru TASAKA

3.6.5 - 2024-12-15 #version-3-6-5

Fixes

* parallel: thread: Fixed a bug that we can't use `pend` and `notify`.
* GH-271
* Reported by Takahiro Ueda
* Patch by Tsutomu Katsube

Thanks

* Takahiro Ueda

* Tsutomu Katsube

3.6.4 - 2024-11-28 #version-3-6-4

Improvements

* Added support for Ruby 3.4.

3.6.3 - 2024-11-24 #version-3-6-3

Improvements

* Added support for thread based parallel test running. You can use
it by the `--parallel=thread` option. You can disable parallel
test running per test case by defining `parallel_safe?` class
method that returns `false`.
* GH-235
* Patch by Tsutomu Katsube

* Added the `--n-workers` option.

* Added the `--[no-]report-slow-tests` option. You can show the top
5 slow tests with this option.
* GH-253
* Patch by Tsutomu Katsube

* UI: console: Add support for outputting {Exception#cause}.

* Added support for inspecting {BasicObject}.
* GH-262.
* Patch by Yuta Saito

Thanks

* Tsutomu Katsube

* Yuta Saito

3.6.2 - 2024-02-16 #version-3-6-2

Improvements

* UI: console: Add `--gc-stress` option that enables {GC.stress}
only whie each test is running.

* Added support for Ruby 3.4 style backtrace.
[GH-237][https://github.com/test-unit/test-unit/issues/237]
[Patch by Yusuke Endoh]

Thanks

* Yusuke Endoh

3.6.1 - 2023-06-25 #version-3-6-1

Improvements

* collector: load: Improved performance when a large number of test
files exist.
[GH-232][https://github.com/test-unit/test-unit/issues/232]
[Patch by akira yamada]

Thanks

* akira yamada

3.6.0 - 2023-05-25 #version-3-6-0

Improvements

* UI: console: Use `--progress-style=fault-only` with non-tty output
by default.

3.5.9 - 2023-05-25 #version-3-5-9

Improvements

* UI: console: Use `--progress-style=mark` with `--verbose=verbose`
by default.

3.5.8 - 2023-05-12 #version-3-5-8

Improvements

* doc: Improved document for multi Ractor mode.
[GH-226][https://github.com/test-unit/test-unit/issues/226]
[Patch by Luke Gruber]

* doc: Updated minitest's URL.
[GH-228][https://github.com/test-unit/test-unit/issues/228]
[Patch by Koichi ITO]

* UI: console: Added `--progress-style` option.

* UI: console: Compacted `--verbose=important-only` output..

* UI: console: Changed the default output level to `important-only`
  on GitHub Actions.

Thanks

* Luke Gruber

* Koichi ITO

3.5.7 - 2022-12-15 #version-3-5-7

Improvements

* [UI][console]: Changed to use color escape sequence for each line
instead of each output that may consist with multiple lines.

3.5.6 - 2022-12-15 #version-3-5-6

Improvements

* [UI][console]: Enabled 256 colors output on GitHub Actions by default.

3.5.5 - 2022-10-04 #version-3-5-5

Fixes

* Suppressed a warning.
[GitHub#219](https://github.com/test-unit/test-unit/issues/219)[Patch by Kenichi Kamiya]

Thanks

* Kenichi Kamiya

3.5.4 - 2022-10-04 #version-3-5-4

Improvements

* Don't raise an error on {Test::Unit::TestCase.clone}.
[GitHub#210](https://github.com/test-unit/test-unit/issues/210)[Reported by David Marchaland]

* Added support for {BigDeciaml} in `assert_in_delta` family.
[GitHub#218](https://github.com/test-unit/test-unit/issues/218)[Patch by Kenta Murata]

Thanks

* David Marchaland

* Kenta Murata

3.5.3 - 2021-12-20 #version-3-5-3

Improvements

* Made how to sub test case generation customizable.
[GitHub#207](https://github.com/test-unit/test-unit/issues/207)[Patch by Akira Matsuda]

Thanks

* Akira Matsuda

3.5.2 - 2021-12-10 #version-3-5-2

Improvements

* Required `fileutils` lazy.
[GitHub#206](https://github.com/test-unit/test-unit/issues/206)[Patch by David Rodríguez]

Thanks

* David Rodríguez

3.5.1 - 2021-11-08 #version-3-5-1

Fixes

* Fixed a bug that `keep: true` is ignored when data set is
generated by block. [Reported by Kenta Murata]

Thanks

* Kenta Murata

3.5.0 - 2021-10-18 #version-3-5-0

Fixes

* Fixed a bug that `keep: true` is ignored when the last `data`
doesn't have `keep: true`.

3.4.9 - 2021-10-18 #version-3-4-9

Improvements

* Added support for labeling each variable values by using {Hash}.

3.4.8 - 2021-10-11 #version-3-4-8

Improvements

* Added support for omitting Ractor tests on Ruby 2.7 or earlier
automatically.

3.4.7 - 2021-09-14 #version-3-4-7

Fixes

* Suppressed a warning on Ruby 2.
[GitHub#205](https://github.com/test-unit/test-unit/issues/205)[Patch by Kenichi Kamiya]

Thanks

* Kenichi Kamiya

3.4.6 - 2021-09-11 #version-3-4-6

Improvements

* Added support for tests that use Ractor. Use
{Test::Unit::TestCase.ractor} to declare that these tests use
Ractor.

* Added `--debug-on-failure` option.

3.4.5 - 2021-09-04 #version-3-4-5

Improvements

* Added more  to gemspec.
[GitHub#183](https://github.com/test-unit/test-unit/issues/183)[Patch by Kenichi Kamiya]

* Removed needless files from gem.
[GitHub#184](https://github.com/test-unit/test-unit/issues/184)[Patch by Kenichi Kamiya]

* Updated documents.
[GitHub#191](https://github.com/test-unit/test-unit/issues/191)[GitHub#192](https://github.com/test-unit/test-unit/issues/192)[GitHub#193](https://github.com/test-unit/test-unit/issues/193)[GitHub#199](https://github.com/test-unit/test-unit/issues/199)[GitHub#200](https://github.com/test-unit/test-unit/issues/200)
[GitHub#201](https://github.com/test-unit/test-unit/issues/201)[Patch by Kenichi Kamiya]

* Added `assert_nothing_leaked_memory`.

Fixes

* Fixed typos in documents.
[GitHub#189](https://github.com/test-unit/test-unit/issues/189)[GitHub#190](https://github.com/test-unit/test-unit/issues/190)[GitHub#195](https://github.com/test-unit/test-unit/issues/195)[GitHub#197](https://github.com/test-unit/test-unit/issues/197)[Patch by Kenichi Kamiya]

Thanks

* Kenichi Kamiya

3.4.4 - 2021-06-04 #version-3-4-4

Improvements

* Renamed `assert_all?` to `assert_all`. `assert_all?` is deprecated
but is available.

3.4.3 - 2021-06-04 #version-3-4-3

Improvements

* Stopped to change result value of {Test::Unit::TestCase#include}.

* Added `assert_all?`.

* Added support for `assert_raise_with_message`.

3.4.2 - 2021-05-30 #version-3-4-2

Improvements

* [UI][console]: Improved diff readability for no color
case. Character based diff marks are always showed.

3.4.1 - 2021-04-19 #version-3-4-1

Fixes

* Fixed a bug that `setup`/`cleanup`/`teardown` with block may be
overwritten by another `setup`/`cleanup`/`teardown` with
block. It's caused only with Ruby 2.6 or earlier.
[GitHub#179](https://github.com/test-unit/test-unit/issues/179)[Reported by akira yamada]

Thanks

* akira yamada

3.4.0 - 2021-01-30 #version-3-4-0

Improvements

* Enable deprecated warnings by default.

3.3.9 - 2020-12-29 #version-3-3-9

Improvements

* `assert_not_match`: Add support for {String} as pattern.
[GitHub#178](https://github.com/test-unit/test-unit/issues/178)[Patch by David Rodríguez]

Thanks

* David Rodríguez

3.3.8 - 2020-12-25 #version-3-3-8

Improvements

* [UI][console]: Removed reverse mode because Ruby 3.0 reverts
reverse backtrace.

3.3.7 - 2020-11-18 #version-3-3-7

Improvements

* Improved TruffleRuby support.
[GitHub#171](https://github.com/test-unit/test-unit/issues/171)[Reported by Benoit Daloze]

* Removed needless `to_sym`.
[GitHub#177](https://github.com/test-unit/test-unit/issues/177)[Patch by icm7216]

* `assert_raise`: Added backtrace for actual error.

* Improved terminal color availability detection.
[GitHub#175](https://github.com/test-unit/test-unit/issues/175)[Patch by nicholas a. evans]

* Changed license to the new Ruby's.
[GitHub#174](https://github.com/test-unit/test-unit/issues/174)

Fixes

* Fixed a typo in `--help` output:
[GitHub#176](https://github.com/test-unit/test-unit/issues/176)[Patch by icm7216]

Thanks

* Benoit Daloze

* icm7216

* nicholas a. evans

3.3.6 - 2020-06-10 #version-3-3-6

Improvements

* `name`, `--ignore-name`:

 * Added support for regular expression options.

 * Added support for matching with class name in exact match mode.
   [Reported by Jun Aruga]

* Updated ruby-talk mailing list information
[GitHub#168](https://github.com/test-unit/test-unit/issues/168)[Patch by Chris Kampmeier]

Thanks

* Chris Kampmeier

* Jun Aruga

3.3.5 - 2020-01-10 #version-3-3-5

Improvements

* Improved code snippet showing with different default external encoding.
[GitHub#166](https://github.com/test-unit/test-unit/issues/166)[Patch by Yuta Iwama]

Thanks

* Yuta Iwama

3.3.4 - 2019-09-30 #version-3-3-4

Improvements

* Converted markup format to Markdown from RDoc.
[GitHub#164](https://github.com/test-unit/test-unit/issues/164)[Patch by OGAWA KenIchi]

* test: Stopped to depend on {Time#inspect} format.
[GitHub#165](https://github.com/test-unit/test-unit/issues/165)[Reported by Benoit Daloze]

Thanks

* OGAWA KenIchi

* Benoit Daloze

3.3.3 - 2019-05-10 #version-3-3-3

Fixed

* Fixed a bug that priority mode with test case name that uses
special characters such as `?` can't be used on Windows.

3.3.2 - 2019-04-11 #version-3-3-2

Fixes

* Fixed a bug that {Test::Unit::Collector::Load} doesn't load test
files under sub directories when these files have the same base
name as test files in upper directories.
[Reported by Kenta Murata]

Thanks

* Kenta Murata

3.3.1 - 2019-03-27 #version-3-3-1

Improvements

* Added support for {Test::Unit::AssertionFailedError#user_message}
for not only `assert_equal` and `assert_raise` but also all
assertions.
[GitHub#162](https://github.com/test-unit/test-unit/issues/162)[Reported by xgraffm]

Thanks

* xgraffm

3.3.0 - 2019-01-23 #version-3-3-0

Improvements

* Added support for auto test run when all tests are defined in
modules.

* Added support for defining methods to test case class in multiple
threads.
[GitHub#159](https://github.com/test-unit/test-unit/issues/159)[Reported by Charles Oliver Nutter]

* Suppressed warnings on Ruby 2.5.
[GitHub#160](https://github.com/test-unit/test-unit/issues/160)[Reported by Daniel Berger]

* Suppressed warnings on Ruby 2.7.

Fixes

* Fixed a code snippet fetch failure when source code isn't UTF-8
and the default external encoding is set to not UTF-8.
[GitHub#161](https://github.com/test-unit/test-unit/issues/161)[Reported by masa kunikata]

Thanks

* Charles Oliver Nutter

* Daniel Berger

* masa kunikata

3.2.9 - 2018-12-01 #version-3-2-9

Improvements

* Added support for data generation by method. `data_#{test_name}`
is called to generate data for `test_name` test.

* Added support for data matrix generation.

Example:

```ruby
data(:a, [0, 1, 2])
data(:b, [:x, :y])
def test_data(data)
end
```

This example generates the following data matrix:

  * label: `"a: 0, b: :x"`, data: `{a: 0, b: :x}`
  * label: `"a: 0, b: :y"`, data: `{a: 0, b: :y}`
  * label: `"a: 1, b: :x"`, data: `{a: 1, b: :x}`
  * label: `"a: 1, b: :y"`, data: `{a: 1, b: :y}`
  * label: `"a: 2, b: :x"`, data: `{a: 2, b: :x}`
  * label: `"a: 2, b: :y"`, data: `{a: 2, b: :y}`

* Added {Test::Unit::TestCase#data} that returns the current data.

* Added support for using test method that doesn't have no
parameters as data driven test.

Example:

```ruby
data("label", :value)
def test_data # Available since this release
  p data # :value
end
```

* Added support for `:keep` option to {Test::Unit::TestCase.data}.

* Added support for `:group` option to
{Test::Unit::TestCase.data}. It's useful to generate multiple data
matrix groups.

```ruby
# Group1
data(:a, [0, 1, 2], group: :g1)
data(:b, [:x, :y], group: :g1)
# Group2
data(:a, [:x, :y], group: :g2)
data(:c, [-1, -2], group: :g2)
def test_data(data)
end
```

This example generates the following data matrix:

  * label: `"group: :g1, a: 0, b: :x"`, data: `{a: 0, b: :x}`
  * label: `"group: :g1, a: 0, b: :y"`, data: `{a: 0, b: :y}`
  * label: `"group: :g1, a: 1, b: :x"`, data: `{a: 1, b: :x}`
  * label: `"group: :g1, a: 1, b: :y"`, data: `{a: 1, b: :y}`
  * label: `"group: :g1, a: 2, b: :x"`, data: `{a: 2, b: :x}`
  * label: `"group: :g1, a: 2, b: :y"`, data: `{a: 2, b: :y}`
  * label: `"group: :g2, a: :x, b: -1"`, data: `{a: :x, b: -1}`
  * label: `"group: :g2, a: :x, b: -2"`, data: `{a: :x, b: -2}`
  * label: `"group: :g2, a: :y, b: -1"`, data: `{a: :y, b: -1}`
  * label: `"group: :g2, a: :y, b: -2"`, data: `{a: :y, b: -2}`

3.2.8 - 2018-05-13 #version-3-2-8

Improvements

* [UI][console]: Changed to put code snippet before backtrace on
reverse mode.

3.2.7 - 2017-12-12 #version-3-2-7

Improvements

* Added source code link to gemspec.
[GitHub#157](https://github.com/test-unit/test-unit/issues/157)[Patch by Grey Baker]

* Changed to use SVG image for badges in README.
[GitHub#158](https://github.com/test-unit/test-unit/issues/158)[Patch by Olle Jonsson]

* [UI][console]: Added `--reverse-output` option to output fault
details in reverse like Ruby 2.5. It's enabled by default only for
tty output.

Fixes

* Fixed a typo.
[GitHub#156](https://github.com/test-unit/test-unit/issues/156)[Patch by masa kunikata]

* [UI][console]: Fixed a bug that broken align in verbose mode.

Thanks

* masa kunikata

* Grey Baker

* Olle Jonsson

3.2.6 - 2017-09-21 #version-3-2-6

Improvements

* Changed test file require failure to error from omission.
[GitHub#154](https://github.com/test-unit/test-unit/issues/154)[Patch by naofumi-fujii]

Thanks

* naofumi-fujii

3.2.5 - 2017-06-24 #version-3-2-5

Improvements

* Supported `--enable-frozen-string-literal` `ruby` option.
[GitHub#149](https://github.com/test-unit/test-unit/issues/149)[Reported by Pat Allan]

Thanks

* Pat Allan

3.2.4 - 2017-05-23 #version-3-2-4

Improvements

* Updated tests for Ruby 2.4. [GitHUb#136][Patch by Kazuki Tsujimoto]

* Supported power\_assert 1.0. [GitHub#137](https://github.com/test-unit/test-unit/issues/137)[Patch by Kazuki Tsujimoto]

* Added the getting started document.
[GitHub#139](https://github.com/test-unit/test-unit/issues/139)[GitHub#141](https://github.com/test-unit/test-unit/issues/141)[Patch by Hiroyuki Sato]

* Added the document for `attribute`.
[GitHub#143](https://github.com/test-unit/test-unit/issues/143)[Patch by Fumiaki MATSUSHIMA]

* Improved a link for GitHub. [GitHub#144](https://github.com/test-unit/test-unit/issues/144)[Patch by rochefort]

* Updated `.travis.yml`. [GitHub#145](https://github.com/test-unit/test-unit/issues/145)[Patch by Jun Aruga]

Fixes

* Fixed a contributor name. [GitHub#131](https://github.com/test-unit/test-unit/issues/131)[Patch by Akira Matsuda]

* Fixed typos in document. [GitHub#132](https://github.com/test-unit/test-unit/issues/132)[Patch by Akira Matsuda]

* Fixed typos in document. [GitHub#134](https://github.com/test-unit/test-unit/issues/134)[Patch by Yuji Yaginuma]

* Fixed a bug that data label with "(" isn't supported.
[GitHub#135](https://github.com/test-unit/test-unit/issues/135)[Reported by Kazuki Tsujimoto]

* Fixed assertion message in English.
[GitHub#133](https://github.com/test-unit/test-unit/issues/133)[Reported by Khalil Fazal]

* Fixed a typo in typo fix. [GitHub#138](https://github.com/test-unit/test-unit/issues/138)[Patch by kami]

* Fixed a bug that target location finder may return wrong
location. [GitHub#146](https://github.com/test-unit/test-unit/issues/146)[Patch by Yuki Ito]

* Fixed a bug that `--no-show-detail-immediately` raises an error.
[GitHub#147](https://github.com/test-unit/test-unit/issues/147)[Reported by MSP-Greg]

Thanks

* Akira Matsuda

* Yuji Yaginuma

* Kazuki Tsujimoto

* Khalil Fazal

* kami

* Hiroyuki Sato

* Fumiaki MATSUSHIMA

* rochefort

* Jun Aruga

* Yuki Ito

* MSP-Greg

3.2.3 - 2016-11-25 #version-3-2-3

Fixes

* Fixed a bug that `--order` isn't applied.
[GitHub#129](https://github.com/test-unit/test-unit/issues/129)[Reported by Vít Ondruch]

Thanks

* Vít Ondruch

3.2.2 - 2016-11-02 #version-3-2-2

Improvements

* Improved Travis CI configuration.
[GitHub#123](https://github.com/test-unit/test-unit/issues/123)[Patch by Ryunosuke Sato]

* Supported Java native exception.
[GitHub#126](https://github.com/test-unit/test-unit/issues/126)[Reported by Bob Saveland]

Fixes

* doc: Fixed markup. [GitHub#127](https://github.com/test-unit/test-unit/issues/127)[Patch by Tomohiro Hashidate]

* Fixed a bug that `--location=LINE` may not detect a test when
fixtures are defined before any tests:

    1 class MyTestCase < Test::Unit::TestCase
    2   setup do
    3   end
    4
    5   test "xxx" do
    6   end
    7 end

`--location=5` couldn't find the `xxx` test.

[Reported by Ryota Sasabe]

Thanks

* Ryunosuke Sato

* Tomohiro Hashidate

* Bob Saveland

* Ryota Sasabe

3.2.1 - 2016-07-19 #version-3-2-1

Improvements

* Clarified lib/test/unit/diff.rb license. It's a triple license of
the Ruby license, PSF license and LGPLv2.1 or later.
[Reported by Luisa Pace]

* Reported norification when data driven test doesn't have
parameter.
[GitHub#122](https://github.com/test-unit/test-unit/issues/122)[Reported by Satoshi "Moris" Tagomori]

Thanks

* Luisa Pace

* Satoshi "Moris" Tagomori

3.2.0 - 2016-06-12 #version-3-2-0

Improvements

* Supported rxvt family terminals as color available terminals.
[GitHub#121](https://github.com/test-unit/test-unit/issues/121)[Reported by Ippei Kishida]

Thanks

* Ippei Kishida

3.1.9 - 2016-05-20 #version-3-1-9

Fixes

* Fixed conflict with test-unit-power_assert.
[GitHub#120](https://github.com/test-unit/test-unit/issues/120)[Patch by Kazuki Tsujimoto]

* Fixed a bug that path in `$LOAD_PATH` may be removed.

Thanks

* Kazuki Tsujimoto

3.1.8 - 2016-03-19 #version-3-1-8

Improvements

* Added `--stop-on-failure` command line option. With this option,
running test suite is stopped immediately when one test is failed
or an error is raised in one test.

3.1.7 - 2016-01-17 #version-3-1-7

Fixes

3.1.6 - 2016-01-17 #version-3-1-6

It's a Ruby on Rails integration improvement release.

Improvements

* Filtered backtrace of power\_assert.
[GitHub#114](https://github.com/test-unit/test-unit/issues/114)
* Improved performance to retrieve test defined location.
* Improved performance to run fixtures in a test.
* Supported running a test by `yield` in `setup`:

Before:

    def setup
      @file = File.open("x")
    end

    def teardown
      @file.close
    end

After:

    def setup
      File.open("x") do |file|
        @file = file
        yield
      end
    end

* Added `--default-test-path` option that specifies the default path
that has tests.
* Made auto runner registration more lazily. Auto runner isn't
registered automatically until user defines a test. In the
previous releases, auto runner is registered automatically when
user defines a test case.
* Supported specifying a test by location in command line. For
example, the following command line runs a test that is defined in
/tmp/test_a.rb at line 10:

    % ruby -r test-unit -e run_test /tmp/test_a.rb:10

Fixes

* Fixed a bug that test isn't ran. The test has the same name as
data driven test that is defined in parent test case.
[GitHub#115](https://github.com/test-unit/test-unit/issues/115)

3.1.5 - 2015-10-09 #version-3-1-5

It's a Rack integration improvement release.

Improvements

* Renamed experimental top-level `run` method to `run_test` method
because `run` is conflicted with Rack.
[GitHub#32](https://github.com/test-unit/test-unit/issues/32)[GitHub:basecamp/pow#303] [Reported by Yevhen Viktorov]

Thanks

* Yevhen Viktorov

3.1.4 - 2015-09-26 #version-3-1-4

It's a minor improvement release.

Improvements

* Updated sample code. [GitHub#109](https://github.com/test-unit/test-unit/issues/109)[Patch by takiy33]
* Updated .travis.yml. [GitHub#110](https://github.com/test-unit/test-unit/issues/110)[Patch by takiy33]
* document: Added table header in how to document.
[GitHub#111](https://github.com/test-unit/test-unit/issues/111)[Patch by takiy33]
* Removed duplicated code.
[GitHub#112](https://github.com/test-unit/test-unit/issues/112)[Patch by takiy33]
* Removed needless encoding conversion in fetching code snippet.
[GitHub#113](https://github.com/test-unit/test-unit/issues/113)[Patch by NARUSE, Yui]

Thanks

* takiy33
* NARUSE, Yui

3.1.3 - 2015-07-26 #version-3-1-3

It's a bug fix release.

Improvements

* Removed unused {TODO} file. [GitHub#108](https://github.com/test-unit/test-unit/issues/108)[Patch by takiy33]

Fixes

* `--location`: Fixed a bug that `--location LINE` doesn't work when
test script is specified as relative path. [Reported by TOMITA Masahiro]

The following doesn't work:

    % ruby ./test.rb --location 10

The following works:

    % ruby test.rb --location 10

Thanks

* takiy33
* TOMITA Masahiro

3.1.2 - 2015-06-09 #version-3-1-2

It's command line option improvements fix release.

Improvements

* `--location`: Made path match rule more strict.
[Suggested by kimura wataru]
* Before:
  * If test defined path ends with the specified path, the test is
    matched.
* After:
  * If base name of test defined path equals to the specified
    path, the test is matched.
  * If relative path of test defined path equals to the specified
    path, the test is matched.
  * If the specified path is absolute path and test defined path
    equals to the specified path, the test is matched.
* `--pattern`: If the option is specified, the default patterns
aren't used. In the earlier versions, both the default patterns
and the specified patterns are used.
[Suggested by kimura wataru]

Thanks

* kimura wataru

3.1.1 - 2015-05-29 #version-3-1-1

It's a bug fix release.

Fixes

* Fixed a bug that `--location` detects tests not only in sub test
case but also parent test case.
[GitHub#105](https://github.com/test-unit/test-unit/issues/105)[Reported by wanabe]

Thanks

* wanabe

3.1.0 - 2015-05-28 #version-3-1-0

It's a bug fix release.

Improvements

* [ui][console] Removed needless new line.

Fixes

* Fixed a bug that priority mode can't be used on Windows.
[GitHub#95](https://github.com/test-unit/test-unit/issues/95)[Reported by Daniel Berger]
* Fixed a homepage URL RubyGems spec.
[GitHub#96](https://github.com/test-unit/test-unit/issues/96)[Patch by Masayoshi Takahashi]
supported.) [GitHub#89](https://github.com/test-unit/test-unit/issues/89)[Patch by Aaron Stone]
* Fixed a bug that shutdown hook isn't called when pass throw
exception such as {Interrupt} is raised.
[GitHub#98](https://github.com/test-unit/test-unit/issues/98)[Reported by jeremiahishere.]
* Fixed typos in documents.
[GitHub#100](https://github.com/test-unit/test-unit/issues/100)[Reported by scivola]
[GitHub#102](https://github.com/test-unit/test-unit/issues/102)[GitHub#103](https://github.com/test-unit/test-unit/issues/103)[Patch by Masafumi Yokoyama]
* Fixed a bug that the same name test isn't executed in sub test case.
[GitHub#104](https://github.com/test-unit/test-unit/issues/104)[Reported by wanabe]

Thanks

* Daniel Berger
* Masayoshi Takahashi
* jeremiahishere
* scivola
* Masafumi Yokoyama
* wanabe

3.0.9 - 2014-12-31 #version-3-0-9

It's a release that improves colors.

Improvements

* Added a work around for Ruby 1.8. (Note: Ruby 1.8 isn't
supported.) [GitHub#89](https://github.com/test-unit/test-unit/issues/89)[Patch by Aaron Stone]
* Supported colorized output on Windows.
[GitHub#90](https://github.com/test-unit/test-unit/issues/90)[Patch by usa]
* Improved colorized output.
http://www.a-k-r.org/d/2014-12.html#a2014_12_27_1
[Suggested by Tanaka Akira]

Thanks

* Aaron Stone
* usa
* Tanaka Akira

3.0.8 - 2014-12-12 #version-3-0-8

It's a release that supports Ruby 2.2.0 preview2.

Improvements

* Added a link for YARD in README.
[GitHub:test-unit.github.io#2][Reported by sunnyone]
* Added description about "/PATTERN/" style value in auto runner usage.
[GitHub#86](https://github.com/test-unit/test-unit/issues/86)[Suggested by sunnyone]
* Supported Ruby 2.2 preview2 in `assert_throw` and
`assert_nothing_thrown`.

Fixes

* Fixed a bug that error report is failed when source encoding and
locale encoding are different.
[GitHub#87](https://github.com/test-unit/test-unit/issues/87)[Reported by scivola]

Thanks

* sunnyone
* scivola

3.0.7 - 2014-11-14 #version-3-0-7

It's a minor update release.

Fixes

* Fixed a bug that teardown blocks aren't called with sub class to
parent class order.
[GitHub#85](https://github.com/test-unit/test-unit/issues/85)[Reported by TOMITA Masahiro]

Thanks

* TOMITA Masahiro

3.0.6 - 2014-11-09 #version-3-0-6

It's a minor update release.

Improvements

* Improved code snippet location.
[GitHub#84](https://github.com/test-unit/test-unit/issues/84)[Patch by Yuki Kurihara]

Thanks

* Yuki Kurihara

3.0.5 - 2014-11-08 #version-3-0-5

It's a minor update release.

Fixes

* Fixed a bug that startup/shutdown of parent test case isn't called
when the test case includes one or more modules.
[GitHub#83](https://github.com/test-unit/test-unit/issues/83)[Reported by Chadderton Odwazny]

Thanks

* Chadderton Odwazny

3.0.4 - 2014-11-01 #version-3-0-4

It's a minor update release.

Improvements

* Stopped to remove JRuby and Rubinius internal backtrace entries from
backtrace on failure/error.
[GitHub#82](https://github.com/test-unit/test-unit/issues/82)[Patch by Charles Oliver Nutter]

Thanks

* Charles Oliver Nutter

3.0.3 - 2014-10-29 #version-3-0-3

It's a minor update release.

Improvements

* Improved {Test::Unit::TestCase.test} performance.
100 times faster.
* Supported {Proc} for user message.
[Sugested by Nobuyoshi Nakada]

Fixes

* Fixed markup in document.
[GitHub#81](https://github.com/test-unit/test-unit/issues/81)[Patch by Masafumi Yokoyama]

Thanks

* Masafumi Yokoyama
* Nobuyoshi Nakada

3.0.2 - 2014-10-15 #version-3-0-2

It's a minor update release.

Improvements

* Supported broken `==` implementation.
`==` implementation should be fixed but it's not work of test-unit. :<
[GitHub#71](https://github.com/test-unit/test-unit/issues/71)[Reported by Emily]
* [UI][console]: Accepted no message failure.
[GitHub#66](https://github.com/test-unit/test-unit/issues/66)[Reported by Brian Tatnall]
* Updated gem description.
[GitHub#74](https://github.com/test-unit/test-unit/issues/74)[Patch by Vít Ondruch]
* Updated GPL text.
[GitHub#78](https://github.com/test-unit/test-unit/issues/78)[Patch by Vít Ondruch]

Fixes

* Removed needless executable bit from README file.
[GitHub#79](https://github.com/test-unit/test-unit/issues/79)[Patch by Vít Ondruch]

Thanks

* Emily
* Brian Tatnall
* Vít Ondruch

3.0.1 - 2014-08-05 #version-3-0-1

It's a minor update release.

Improvements

* Improved Ruby 1.8 support. Note that we don't support Ruby 1.8.7
actively. We just support if its support is painless.
[GitHub#71](https://github.com/test-unit/test-unit/issues/71)[Patch by estolfo]

Thanks

* estolfo

3.0.0 - 2014-08-03 #version-3-0-0

It's Power Assert supported release!

Improvements

* Improved Rubinius support. [Ryo Onodera]
* Updated RR repository link. [GitHub#56](https://github.com/test-unit/test-unit/issues/56)[Patch by Kenichi Kamiya]
* Added some minitest compatible assertions. We don't recommend
using these assertions. They are just for migrating from minitest.
[GitHub#57](https://github.com/test-unit/test-unit/issues/57)[Patch by Karol Bucek]
* {Test::Unit::Assertions#refute}
* {Test::Unit::Assertions#refute_predicate}
* {Test::Unit::Assertions#refute_empty}
* {Test::Unit::Assertions#assert_not_includes}
* {Test::Unit::Assertions#refute_includes}
* {Test::Unit::Assertions#assert_not_instance_of}
* {Test::Unit::Assertions#refute_instance_of}
* {Test::Unit::Assertions#assert_not_kind_of}
* {Test::Unit::Assertions#refute_kind_of}
* {Test::Unit::Assertions#assert_not_operator}
* {Test::Unit::Assertions#refute_operator}
* Improved code readability. [Suggested by Kenichi Kamiya]
* Made license field in RubyGems parseable.
[GitHub#60](https://github.com/test-unit/test-unit/issues/60)[Patch by Michael Grosser]
* Improved test case match feature by `--testcase` and `--ignore-testcase`
options. They also checks parent class names.
* Made inspected representation of Numeric objects especially
BigDecimal more readable. [GitHub#64](https://github.com/test-unit/test-unit/issues/64)[Reported by Byron Appelt]
* Added badges for Traivs CI and RubyGems.
[GitHub#65](https://github.com/test-unit/test-unit/issues/65)[Patch by Byron Appelt]
* Supported Power Assert. You can use Power Assert with
{Test::Unit::Assertions#assert} with block. See method document
for details. We recommend using Power Assert for predicate method
checks. For example, we recommend Power Assert rather than
{Test::Unit::Assertions#assert_true},
{Test::Unit::Assertions#assert_predicate} and so on. We don't
recommend using Power Assert for equality check assertion.
{Test::Unit::Assertions#assert_equal} should be used for the case.
[Kazuki Tsujimoto]

Fixes

* Fixed a bug that test case defined by block has wrong location.
[GitHub#58](https://github.com/test-unit/test-unit/issues/58)[Patch by Narihiro Nakamura]
* Fixed a bug that test methods defined in included modules in
super-class are also collected.
[GitHub#62](https://github.com/test-unit/test-unit/issues/62)[GitHub#63](https://github.com/test-unit/test-unit/issues/63)[Patch by Karol Bucek]

Thanks

* Ryo Onodera
* Kenichi Kamiya
* Karol Bucek
* Narihiro Nakamura
* Michael Grosser
* Byron Appelt
* Kazuki Tsujimoto

2.5.5 - 2013-05-18 #version-2-5-5

It's Ruby 2.0.0 supported release!

Improvements

* Supported Ruby 2.0. [GitHub#54](https://github.com/test-unit/test-unit/issues/54) [Reported by mtasaka]
* Accepted screen-256color TERM as 256 colors available environment.
[GitHub#55](https://github.com/test-unit/test-unit/issues/55) [Reported by Tom Miller]

Fixes

* Fixed a typo in document.
[GitHub#53](https://github.com/test-unit/test-unit/issues/53) [Patch by Baptiste Fontaine]
* Fixed a bug in {Test::Unit::Assertions#assert_in_epsilon}. It doesn't work
as expected if expected value is negative value.
[Ruby Bug #8317] [Reported by Nobuhiro IMAI]

Thanks

* Baptiste Fontaine
* mtasaka
* Tom Miller
* Nobuhiro IMAI

2.5.4 - 2013-01-23 #version-2-5-4

It's a bug fix release.

Improvements

* Added documents for data driven test functionality.
* Added TSV support for data driven test functionality.
* Support tag inspection on JRuby.

Fixes

* Fixed a bug. It is too slow to filter tests when there are many
tests. [GitHub#46](https://github.com/test-unit/test-unit/issues/46)
* Accept anonymous test suite.
[GitHub:#49] [Reported by Matthew Rudy Jacobs]

Thanks

* Matthew Rudy Jacobs

2.5.3 - 2012-11-28 #version-2-5-3

It's a release for minitest compatibility and bug fix.

Improvements

* Supported diff in invalid encoding.
* Added some assersion methods just for minitest compatibility.
Added methods are assert_includes(), refute_*() and refute().
If you are test-unit user, please don't use them.
[GitHub#40](https://github.com/test-unit/test-unit/issues/40) [Suggested by Michael Grosser]
* Added --attribute option to select target tests by attribute.
[test-unit-users-en:00098] [Suggested by Piotr Nestorow]

Fixes

* Allowed use of test for inheritance in ActionController::TestCase.
[GitHub#42](https://github.com/test-unit/test-unit/issues/42) [Patch by David Rasch]
* Ensured evaluating at_exit block in top level.
In IRB context, exit() specifies irb_exit().
[test-unit-users-en:00089] [Reported by Daniel Berger]
* Fixed a bug that decoration style description is ignored.
"decoration style description" are using description method
above "def test_name" or with Symbol specifying test_name.
[GitHub#45](https://github.com/test-unit/test-unit/issues/45) [Reported by Piotr Nestorow]

Thanks

* Michael Grosser
* David Rasch
* Daniel Berger
* Piotr Nestorow

2.5.2 - 2012-08-29 #version-2-5-2

It's an improvement release for tmtms. --location is a similar feature to --line_number in RSpec. sub_test_case is a similar feature to context in shoulda-context and RSpec.

Improvements

* Cleaned up tests.
[GitHub#34](https://github.com/test-unit/test-unit/issues/34) [Patch by Michael Grosser]
* Added missing background color for 8 color environment.
* Added workaround for NetBeans.
[GitHub#38](https://github.com/test-unit/test-unit/issues/38) [Reported by Marc Cooper]
* Added `--location` command line option that selects target tests
by test defined location.
* Created sub test suite for each subclassed test case.
* [ui][console] Supported nested test suites.
* Added {Test::Unit.at_start} and {Test::Unit.at_exit} hooks that
are run before/after all tests are run.
[Good hook name is suggested by kdmsnr]
* Improved code snippet target on failure. Test method is always used
for code snippet target.
[GitHub#39](https://github.com/test-unit/test-unit/issues/39) [Suggested by Michael Grosser]
* Added {Test::Unit::TestCase.sub_test_case} that creates sub test case.
The sub test case name isn't limited Ruby's constant name rule. You can
specify the sub test case name in free form.

Thanks

* Michael Grosser
* Marc Cooper
* kdmsnr

2.5.1 - 2012-07-05 #version-2-5-1

It's a bug fix release.

Improvements

* Supported installing from GitHub.
[GitHub#29](https://github.com/test-unit/test-unit/issues/29) [Suggested by Michael Grosser]
* Supported ActiveSupport::TestCase.
[GitHub#30](https://github.com/test-unit/test-unit/issues/30) [Reported by Michael Grosser]
* [ui][console] Improved multiline falut message display.

Fixes

* [ui][console] Fixed a bug that expected and actual values are
empty.
[GitHub#31](https://github.com/test-unit/test-unit/issues/31)[GitHub#33](https://github.com/test-unit/test-unit/issues/33)
[Reported by Kendall Buchanan][Reported by Mathieu Martin]
[Hinted by Michael Grosser]
* Fixed a bug that .gemspec can't be loaded on LANG=C.
[RubyForge#29595] [Reported by Jean-Denis Koeck]

Thanks

* Michael Grosser
* Kendall Buchanan
* Mathieu Martin
* Jean-Denis Koeck

2.5.0 - 2012-06-06 #version-2-5-0

It's a bug fix release.

Fixes

* Fixed a backward incompatibility of {TestUnitMediator#run_suite}
introduced in 2.4.
[GitHub#28](https://github.com/test-unit/test-unit/issues/28) [Reported by Vladislav Rassokhin]

Thanks

* Vladislav Rassokhin

2.4.9 - 2012-06-03 #version-2-4-9

It's a bug fix release.

Improvements

* {Test::Unit.run?} ->
{Test::Unit::AutoRunner.need_auto_run?}. {Test::Unit.run?} is marked
as deprecated but it is still available.
* [experimental] Added top level "run" method for `"ruby -rtest-unit -e
run test/test_*.rb"`. Is this API OK or dirty?
* Made failure output more readable on no color mode.
* Supported showing ASCII-8BIT diff in failure message.
* [ui][console] Supported `ENV["TERM"] == "xterm-256color"` as color
available terminal.
[GitHub#26](https://github.com/test-unit/test-unit/issues/26) [Reported by Michael Grosser]
* [ui][console] Supported "-256color" suffix {ENV["TERM"]} terminal
as 256 color supported terminal.

Fixes

* Fixed a bug that `--workdir` doesn't work.
* Consumed processed command line parameters in {ARGV} as `--help`
says.
[RubyForge#29554] [Reported by Bob Saveland]
* Added missing `require "test/unit/diff"`.
[GitHub#25](https://github.com/test-unit/test-unit/issues/25) [Reported by Stephan Kulow]

Thanks

* Bob Saveland
* Stephan Kulow
* Michael Grosser

2.4.8 - 2012-3-6 #version-2-4-8

It's a bug fix release.

Improvements

* Delayed at_exit registration until Test::Unit is used.
[GitHub:#21] [Reported by Jason Lunn]
* Added workaround for test-spec.
[GitHub:#22] [Reported by Cédric Boutillier]

Fixes

* Fixed an error on code snippet display on JRuby.
[GitHub:#19][GitHub:#20]
[Reported by Jørgen P. Tjernø][Patch by Junegunn Choi]

Thanks

* Jørgen P. Tjernø
* Junegunn Choi
* Jason Lunn

2.4.7 - 2012-2-10 #version-2-4-7

It's a code snippet improvement release.

Improvements

* Supported code snippet display on all faults.

2.4.6 - 2012-2-9 #version-2-4-6

It's a TAP runner separated release.

Improvements

* Moved TAP runner to test-unit-runner-tap gem from test-unit gem.
* Supported code snippet display on failure.

2.4.5 - 2012-1-16 #version-2-4-5

It's a failure message readability improvement release.

Improvements

* Removed needless information from exception inspected
text on failure. It's for easy to read.
* Supported custom inspector.

2.4.4 - 2012-1-2 #version-2-4-4

It's a Rails integration improved release.

Improvements

* [ui][console] Don't break progress display when a test is failed.
* [ui][console] Added markers betwen a failure detail
message in progress to improve visibility.
* [travis] Dropped Ruby 1.8.6 as a test target. [GitHub:#13]
[Patch by Josh Kalderimis]
* Supported expected value == 0 case in assert_in_epsilon. [RubyForge#29485]
[Reported by Syver Enstad]
* Supported a block style setup/teardown/cleanup.

Thanks

* Josh Kalderimis
* Syver Enstad

2.4.3 - 2011-12-11 #version-2-4-3

Improvements

* Improved SimpleCov integration by stopping to modify
{ARGV} in auto runner. [GitHub:#12]
[Reported by Nikos Dimitrakopoulos]
* Improved JRuby integration by removing JRuby internal backtrace.

Thanks

* Nikos Dimitrakopoulos

2.4.2 - 2011-11-26 #version-2-4-2

Improvements

* `--name` supported data label.

2.4.1 - 2011-11-09

Improvements

* Accepted AssertionMessage as assertion's user message.
It is used in assert_select in actionpack.
[Reported by David Heath]

Fixes

* Fixed test failure on LANG=C. #11 [Reported by boutil]
* Suppress warnings on Ruby 1.9.

Thanks

* boutil
* David Heath

2.4.0 - 2011-09-18

Improvements

* Supported Travis CI. #5 [Suggested by James Mead]
* Added Gemfile. #6 [Suggested by James Mead]
* [ui][console] Supported notification in show-detail-immediately.
* [ui][console] enable --show-detail-immediately by default.
* [ui] Added --max-diff-target-string-size option.
* [ui][console] Supported 256 colors.

Fixes

* Added missing fixture file. #7 [Reported by grafi-tt]
* [ui][console] Added missing the last newline for progress level.
* Supported correct backtrace for redefined notification.
* Don't handle Timeout::Error as pass through exception on Ruby 1.8. #8
[Reported by Marc Seeger (Acquia)]

Thanks

* James Mead
* grafi-tt
* Marc Seeger (Acquia)

2.3.2 - 2011-08-15

A bug fix release.

Improvements

* [ui][console] Added some newlines to improve readability.

Fixes

* [ui][console] Worked --verbose again.
* Re-supported Ruby 1.8. [Reported by James Mead]

Thanks

* James Mead

2.3.1 - 2011-08-06 #version-2-3-1

Output improvement release!

Improvements

* [ui][console] Outputs omissions and notifications in short.
* [ui][console] Added "important-only" verbose level.
* Intelligence diff supports recursive references.
* [rubyforge #29325] Supported Ruby Enterprise Edition.
[Reported by Hans de Graaff]
* [rubyforge #29326] Supported JRuby.
[Reported by Hans de Graaff]
* Added --show-detail-immediately option that shows
fault details when a fault is occurred.

Fixes

* [pull request #1] Fixed a problem that load collector
can't load a test file on Ruby 1.9. [Patch by grafi-tt]
* [issue #3] Fixed a problem that implicit method name
override by declarative style test definition.
[Reported by Jeremy Stephens]

Thanks

* grafi-tt
* Jeremy Stephens
* Hans de Graaff

2.3.0 / 2011-04-17

2.2.0 / 2011-02-14

2.1.2 / 2010-11-25

2.1.1 / 2010-07-29

2.1.0 / 2010-07-17

2.0.8 / 2010-06-02

2.0.7 / 2010-03-09

2.0.6 / 2010-01-09

2.0.5 / 2009-10-18

2.0.4 / 2009-10-17

2.0.3 / 2009-07-19

2.0.2 / 2008-12-21

2.0.1 / 2008-11-09

2.0.0 / 2008-06-18

1.2.3 / 2008-02-25