[Seasar-user:2202] Re: TextUtilTest の expected

Sadanori ITO sito_dev
2005年 6月 16日 (木) 02:14:31 JST


伊藤 (sito) です。

以下の環境で試してみました。

CentOS release 4.0 (Final)
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)

テストケース自体は特定条件下では成功しました。

> 結果は全て同じで,
> 
> ・TextUtilTest  全て成功
> ・TextUtilTest2 CR, LF が失敗.CR+LF は成功.
> 
> Windows 環境と同じで,あるべき動作をしているようです.
> かくたにさんが [Seasar-user:1781] で報告してくださった
> 環境と何が違うんでしょうね?

テストを成功させるためには次のような前提条件が必要です。

* Windows 環境でチェックアウトする *

オリジナルの hoge.txt も,今回の hoge_*.txt もテキストファイルとして
CVS に登録されていますので,Linux 環境でチェックアウトすると改行コード
が LF のみに変換されてしまいます。

そのため,テストケース中で CRLF を期待していた場合は失敗してしまいます。

この場合,テストデータをバイナリ扱いにする(-kb)か,Ant の FixCRLF で
テスト実行時に期待通りの改行コードになるよう調整しておく必要があるかと
思います。

ちなみにテストの実行を maven test:match -Dtestmatch=TextUtilTest のように
Maven を使って試したところ,次のような不具合がありました。

プロジェクトとしては Maven でのテストまでサポートする予定はないのかも
知れませんが,参考までにご報告しておきます。

・project.properties に maven.compile.encoding=Windows-31J をしていないと
  LANG が ja_JP.UTF-8 の環境ではコード中の日本語が文字化けすることにより
  NotSupportedInterceptorTest.java でコンパイルエラーが発生しました。
・project.xml の build/unitTest/resources/resource/includes に
  <include>**/*.txt</include> を足さないとテストデータがコピーされません
  でした。
・TextUtilTest#testReadText(Cr?Lf?) における getClass().getPackage() が
  null を返すため, NPE が発生しました。
  使われているクラスローダの違いから来るものだと思います。

  Maven の場合
  getClass().getClassLoader() = [E-MAIL ADDRESS DELETED]

  Ant の場合
  getClass().getClassLoader() = sun.misc.Launcher$[E-MAIL ADDRESS DELETED]

以上です。
ご確認の程よろしくお願い致します。

-- 
s.ito

__________________________________
Save the earth
http://pr.mail.yahoo.co.jp/ondanka/




Seasar-user メーリングリストの案内