Project

General

Profile

Actions

Feature #3037

closed

testrb の動作が1.8.7 の testrb と違いすぎる

Added by okkez (okkez _) over 14 years ago. Updated over 13 years ago.

Status:
Rejected
Assignee:
-
Target version:

Description

=begin
1.8.7 の testrb では --help オプションで使用可能なオプションが詳しく表示されますが、
ruby 1.9.2dev (2010-03-24 trunk 27030) [x86_64-linux] の testrb は表示しません。

また 1.8.7 の testrb では以下のようにコマンドラインからロードパスを指定して実行出来ますが、
1.9 の testrb ではそれもできません。

$ testrb -Ilib test
Loaded suite test
Started
..............................................
Finished in 0.574919 seconds.

46 tests, 16959 assertions, 0 failures, 0 errors
=end

Actions #1

Updated by nobu (Nobuyoshi Nakada) over 14 years ago

  • Assignee set to zenspider (Ryan Davis)

=begin

=end

Actions #2

Updated by zenspider (Ryan Davis) over 14 years ago

  • Assignee deleted (zenspider (Ryan Davis))

=begin

=end

Actions #3

Updated by mame (Yusuke Endoh) over 14 years ago

  • Target version changed from 1.9.2 to 2.0.0

=begin
遠藤です。

2010年3月29日18:21 okkez _ :

1.8.7 の testrb では --help オプションで使用可能なオプションが詳しく表示されますが、
ruby 1.9.2dev (2010-03-24 trunk 27030) [x86_64-linux] の testrb は表示しません。

また 1.8.7 の testrb では以下のようにコマンドラインからロードパスを指定して実行出来ますが、
1.9 の testrb ではそれもできません。

$ testrb -Ilib test
Loaded suite test
Started
..............................................
Finished in 0.574919 seconds.

46 tests, 16959 assertions, 0 failures, 0 errors

この件ですが、test/unit のメンテナとしてリストされていた Ryan Davis に
問い合わせたところ (#3275) 、Ryan は test/unit のメンテナではないという
返事が来ました。つまり、現在 test/unit にメンテナがおりません。

メンテナ不在の状況で対応するには大変なのと、--console や --gtk や --fox
などのオプションは非互換になることなど仕様から検討しないといけないため、
1.9.2 では WONTFIX としたいと思います。

1.9.3 以降でもどなたかがメンテナになってくれるなどしないと直らないかも
しれません。
test/unit を他の互換なテストフレームワーク (Test::Unit 2 とか?) に入れ
替えることを検討した方がいいかも知れません。

--
Yusuke Endoh
=end

Actions #4

Updated by okkez (okkez _) over 14 years ago

=begin

この件ですが、test/unit のメンテナとしてリストされていた Ryan Davis に
問い合わせたところ (#3275) 、Ryan は test/unit のメンテナではないという
返事が来ました。つまり、現在 test/unit にメンテナがおりません。

なるほど。そのやり取りは見ていました。

メンテナ不在の状況で対応するには大変なのと、--console や --gtk や --fox
などのオプションは非互換になることなど仕様から検討しないといけないため、
1.9.2 では WONTFIX としたいと思います。

残念ですが、了解しました。
気付くのが遅くてすみませんでした。

=end

Actions #5

Updated by kou (Kouhei Sutou) over 14 years ago

=begin
須藤です。

In
"[ruby-dev:41353] [Bug #3037] testrb の動作が1.8.7 の testrb と違いすぎる" on Wed, 19 May 2010 21:04:55 +0900,
Yusuke Endoh wrote:

1.9.3 以降でもどなたかがメンテナになってくれるなどしないと直らないかも
しれません。
test/unit を他の互換なテストフレームワーク (Test::Unit 2 とか?) に入れ
替えることを検討した方がいいかも知れません。

もし、Test::Unit 2になってもよいなら、そのときはメンテナに立
候補しようと思います。

=end

Actions #6

Updated by akr (Akira Tanaka) over 14 years ago

=begin
2010年5月19日21:04 Yusuke Endoh :

test/unit を他の互換なテストフレームワーク (Test::Unit 2 とか?) に入れ
替えることを検討した方がいいかも知れません。

経験上、1.8 の test/unit では、test/unit 内で異常終了 (SEGV とか) したとき、
再現スクリプトを最小化するのがとてもたいへんだったので、もとに戻すのは
良い方法とは思えません。

[田中 哲][たなか あきら][Tanaka Akira]

=end

Actions #7

Updated by kou (Kouhei Sutou) over 14 years ago

=begin
須藤です。

In
"[ruby-dev:41402] Re: [Bug #3037] testrb の動作が1.8.7 の testrb と違いすぎる" on Mon, 24 May 2010 16:45:36 +0900,
Tanaka Akira wrote:

test/unit を他の互換なテストフレームワーク (Test::Unit 2 とか?) に入れ
替えることを検討した方がいいかも知れません。

経験上、1.8 の test/unit では、test/unit 内で異常終了 (SEGV とか) したとき、
再現スクリプトを最小化するのがとてもたいへんだったので、もとに戻すのは
良い方法とは思えません。

これは前に田中さんと話したときに聞いた気がする、↓のようなケー
スのことですか?

class SomeTest < Test::Unit::TestCase
def setup
some_setup1
some_setup2
some_setup3
end

 def test_segv
   assert_equal("Good", some_method(arg1))
   assert_equal("Good", some_method(arg2))
   assert_equal("Good", some_method(arg3))
   assert_equal("SEGV!!!", some_method(arg4))
   assert_equal("Good", some_method(arg5))
   assert_equal("Good", some_method(arg6))
 end

end

というテストスクリプトで異常終了したときに、

some_setup1
some_setup2
some_setup3
some_method(arg1)
some_method(arg2)
some_method(arg3)
some_method(arg4)
some_method(arg5)
some_method(arg6)

というスクリプトを作るのが面倒くさいというケース。

=end

Actions #8

Updated by akr (Akira Tanaka) over 14 years ago

=begin
2010年5月28日21:03 Kouhei Sutou :

経験上、1.8 の test/unit では、test/unit 内で異常終了 (SEGV とか) したとき、
再現スクリプトを最小化するのがとてもたいへんだったので、もとに戻すのは
良い方法とは思えません。

これは前に田中さんと話したときに聞いた気がする、↓のようなケー
スのことですか?

いいえ。

個々のテストでなく test/unit というライブラリの中で異常終了するケースや、
テストの中身を取り出して test/unit 抜きで実行すると異常終了しないケースです。

そういうケースでは、test/unit というライブラリを削っていって
再現スクリプトを作るのですが、それがたいへんなのです。

ruby 自体に問題がある場合にはそういうはめに陥るので、
ユニットテストフレームワークは単純なほうが良いと思っています。

[田中 哲][たなか あきら][Tanaka Akira]

=end

Actions #9

Updated by kou (Kouhei Sutou) over 14 years ago

=begin
須藤です。

In
"[ruby-dev:41450] Re: [Bug #3037] testrb の動作が1.8.7 の testrb と違いすぎる" on Fri, 28 May 2010 23:57:44 +0900,
Tanaka Akira wrote:

個々のテストでなく test/unit というライブラリの中で異常終了するケースや、
テストの中身を取り出して test/unit 抜きで実行すると異常終了しないケースです。

そういうケースでは、test/unit というライブラリを削っていって
再現スクリプトを作るのですが、それがたいへんなのです。

ruby 自体に問題がある場合にはそういうはめに陥るので、
ユニットテストフレームワークは単純なほうが良いと思っています。

説明ありがとうございます。

それでは、もともとのテストが意図していない場所で問題が発生し
てしまう確率が高くなるのも問題と考えていますか?
それとも、それ自体は問題ではなく、異常終了が発生してしまった
ときに原因を見つけるのが大変になってしまうことだけが問題と考
えている、ということですか?

ユニットテストフレームワークはあんまり影響を与えない方がよい、
というように読めたので、どちらかというと、前者なのかなぁとい
う感じがしました。

=end

Actions #10

Updated by akr (Akira Tanaka) over 14 years ago

=begin
2010年5月29日0:13 Kouhei Sutou :

それでは、もともとのテストが意図していない場所で問題が発生し
てしまう確率が高くなるのも問題と考えていますか?

原因の追求が簡単なら問題ないかもしれませんね。

[田中 哲][たなか あきら][Tanaka Akira]

=end

Actions #11

Updated by mame (Yusuke Endoh) over 14 years ago

=begin
遠藤です。

2010年5月24日16:45 Tanaka Akira :

2010年5月19日21:04 Yusuke Endoh :

test/unit を他の互換なテストフレームワーク (Test::Unit 2 とか?) に入れ
替えることを検討した方がいいかも知れません。

経験上、1.8 の test/unit では、test/unit 内で異常終了 (SEGV とか) したとき、
再現スクリプトを最小化するのがとてもたいへんだったので、もとに戻すのは
良い方法とは思えません。

test/unit は ruby core のためのテストフレームワークではないので、
それを理由に通常の Ruby ユーザに不便を強いるのは変かなと思いました。

test/unit は置き換えつつ、core の test/ruby は minitest をベースに
した専用テストフレームワークで実行してもいいんじゃないですかね。
まあ、その作業をやってくれる人がいなければ始まりませんけれど。

--
Yusuke Endoh

=end

Actions #12

Updated by shyouhei (Shyouhei Urabe) about 14 years ago

  • Status changed from Open to Rejected

=begin
本件はrejectされたという認識です。違ったら更新してください。
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0