[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 メーリングリストの案内