[#35406] RE: win32ole で excel が終了しない — "Oka Yasushi" <oka@...>

こんにちは、岡といいます。

20 messages 2002/06/19
[#35407] Re: win32ole で excel が終了しない — Takashi Kanai <kanai@...4u.or.jp> 2002/06/19

金井です。

[#35408] Re: win32ole で excel が終了しない — Takashi Kanai <kanai@...4u.or.jp> 2002/06/19

金井です。

[#35412] Re: win32ole で excel が終了しない — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/06/20

なひです。

[#35418] Re: win32ole で excel が終了しない — Takashi Kanai <kanai@...4u.or.jp> 2002/06/20

金井です。

[#35419] Re: win32ole で excel が終了しない — nobu.nakada@... 2002/06/21

なかだです。

[#35480] Re: 1.7 系を使っていますが、5月頃は式展開内のコメントが使えていましたが、今は使えなくなっていますね。 — "井上 浩一" <kyoui32@...>

=1B$B0f>e$G$9!#=1B(B

12 messages 2002/06/28
[#35490] Re: 1.7 系を使っていますが、5月頃は式展開内のコメントが使えていましたが、今は使えなくなっていますね。 — "Inoue" <rubyist@117.ne.jp> 2002/06/28

井上です。

[ruby-list:35410] Re: RubyUnit: Extended assert module and stacktrace

From: Hiroharu Sugawara <sugawah@...>
Date: 2002-06-20 01:58:27 UTC
List: ruby-list #35410
すすといいます。

On Wed, 19 Jun 2002 21:25:12 +0900 "Shirai,Kaoru" <shirai@p1jp.com> wrote:

>  白井です。
> 
> > スタックトレースが期待通りにならない、簡単かつ完全なサンプルを
> > 見せてもらえませんか?
> 
>  以下は、 assert_fail と全く同じように実装している assert_my_fail メソッ
> ドを用意し、 AssertionFailedError の結果を比較しています。
> 
> 結果:
>   $ ruby test.rb
>   MyTest#test_my_fail F.
>   MyTest#test_original_fail F.
>   Time: 0.028523
>   FAILURES!!!
>   Test Results:
>    Run: 2/2(2 asserts) Failures: 2 Errors: 0
>   Failures: 2
>   test.rb:7:in `assert_my_fail'(MyTest): failed
> (RUNIT::AssertionFailedError)
>   	from test.rb:18:in `test_my_fail'
>   	from test.rb:17
>   test.rb:14:in `test_original_fail'(MyTest): failed
> (RUNIT::AssertionFailedError)
>   	from test.rb:17
>   $
> 
>   assert_fail の場合はスタックトレースがちゃんと呼び出し位置から始まって
> います。しかし、 assert_my_fail を使った場合、スタックトレースが
> assert_my_fail の中から始まってしまいます。

上は、RubyUnitの実装通りの動作だと思います。

例外が起こったとき、スタックトレースは TestFailure.initialize()メソッド で整形されます。
この整形は、'#{$LOADPATH}/runit/' を含む行を削除しますから、
通常は assert文を呼び出した位置の情報が残ります。

一方、'/runit/*' 以外のファイルで定義した assert文のトレース情報は取り除かれませんから、
上のように、assert文内部で起こした例外の情報が残ってしまいます。

実は、私も、元のassert文を module_evalで定義し直して、
その内部で AssertionFailErrorを発生させるようなのを書いたのですが、
トレースが`(eval)'という表示が残ってしまい、対応を思案中です。


In This Thread