Bug #821

uninitialized constant Test::Unit::AutoRunner

Added by Naohisa Goto over 6 years ago. Updated about 4 years ago.

[ruby-dev:37275]
Status:Rejected
Priority:Normal
Assignee:Yukihiro Matsumoto
ruby -v:ruby 1.9.2dev (2009-10-19 trunk 25399) [x86_64-freebsd7.2] Backport:

Description

=begin
require 'test/unit'
Test::Unit::AutoRunner.run(true, './somedir')

(注: ./somedir 以下にはテストが書かれたスクリプトが多数ある状態)
を実行すると、テストを1件も実行せず、以下のエラーが出ます。

Loaded suite test/runner
Started

Finished in 0.000528 seconds.

0 tests, 0 assertions, 0 failures, 0 errors, 0 skips
runner.rb:2:in `': uninitialized constant Test::Unit::AutoRunner (NameError)

% ruby -v
ruby 1.9.1 (2008-12-01 revision 20438) [i686-linux]

Ruby 1.8.7では正常にテストが実行されます。
% ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

と関係があるかもしれません。
=end

History

#1 Updated by Koichi Sasada over 6 years ago

  • Assignee set to Yukihiro Matsumoto

=begin

=end

#2 Updated by Naohisa Goto over 6 years ago

=begin
On Tue, 9 Dec 2008 14:57:36 +0900
Tanaka Akira akr@fsij.org wrote:

1.9 の test/unit は 1.8 の test/unit ではなく、minitest のラッ
パーで、現在 Test::Unit::AutoRunner はありません。

なぜ Test::Unit::AutoRunner が必要なんでしょう?

1.8で動いていたスクリプトを最小の手間で1.9対応に移行するためです。
そして、可能な限り同じコードで1.8と1.9の両方で動くようにしたいです。

自作のプログラムを1.9に対応させようとする場合、まずはテストを実行して
failureやエラーが出た場所を修正するという手順を踏むことが多いだろう
と推測しますが、Test::Unit::AutoRunnerが廃止されてしまうと、
Test::Unit::AutoRunnerをテストに使用しているソフトの場合は、
いきなりテストが1個も実行されない状態になって途方に暮れる気がします。

もっとも、Test::Unit::AutoRunnerは1.8.2以前と1.8.3以降で
第一引数の意味が真逆になってしまったので、そこまで考えると、
どのみちRUBY_VERSIONで判別して分岐する必要があるため、
1.9で同程度の機能が別クラス/別メソッドで提供されるのなら、
そちらを使うように変更すればOKかもしれません。とはいえ、
同等機能があるなら、何らかのラッパを提供して欲しいとは思います。

--
後藤 直久 ngoto@gen-info.osaka-u.ac.jp

=end

#3 Updated by Yuki Sonoda over 6 years ago

  • Target version changed from 1.9.1 Release Candidate to 2.0.0

=begin
@ Ruby開発会議にて

  • このケースでしたら、testrbを使ってください。
  • 1.9では、gem化された古いバージョンのtest/unitもあります。
  • 1.9.1はfeature freezeされているので、それ以外のユースケースでAutoRunnerが必要かどうかについては1.9.2以降を念頭に検討します。ユースケースの提供は歓迎します。 =end

#4 Updated by Yui NARUSE over 5 years ago

  • ruby -v set to ruby 1.9.2dev (2009-10-19 trunk 25399) [x86_64-freebsd7.2]
  • Status changed from Open to Feedback

=begin
これは close しちゃっていいですか?
1.9.2 で AutoRunner が欲しい方はユースケースとともに異議を唱えてください
=end

#5 Updated by Naohisa Goto over 5 years ago

=begin
ユースケースとはちょっと違うかもしれませんが、
setup.rb (http://www.loveruby.net/ja//projects/setup/ ) が
% ruby setup.rb test
にてテストを実行する際に AutoRunner を使用している、というのはあります。
ただし、そもそも setup.rb が Ruby 1.9.2 で正常に動くかどうかは未確認です。

私自身は、gem をインストール、rake test に移行、など代替手段はあるので、
AutoRunner が無いのが Ruby 1.9.x の仕様ということなら異議はありません。
=end

#6 Updated by Yusuke Endoh about 5 years ago

  • Status changed from Feedback to Rejected

=begin
遠藤です。

起票者の後藤さんが納得しているようなので、1.9.x の仕様として
close します。非常に遺憾ですが。

標準添付ライブラリの切り替えには注意しようという教訓ですね。
自称「互換」を手放しで信用するなとか。

--
Yusuke Endoh mame@tsg.ne.jp
=end

Also available in: Atom PDF