Kouhei Sutou
kou****@cozmi*****
2008年 5月 9日 (金) 17:01:25 JST
須藤です。 2008/05/09 16:47 Tasuku SUENAGA <a****@razil*****>: > このテストですが、 > mecabの辞書のエンコーディングがEUC-JPであることを前提としております。 それでは、私の環境のUTF-8を利用している環境では 失敗してもおかしくはないということですね。 わかりました。 > 本来はエンコーディングを自動検出して > テストをスキップしたり、適切な文字コードに変換してテストしたい > ところではありますが… そういえば、TestUnitExtというRubyのTest::Unitを拡張して テストをスキップ(省略)する機能を追加しているものが あります。 http://test-unit-ext.rubyforge.org/ それを使うとこんな風に書くことができます。 Index: bindings/ruby/test/all_test.rbx =================================================================== --- bindings/ruby/test/all_test.rbx (revision 804) +++ bindings/ruby/test/all_test.rbx (working copy) @@ -8,7 +8,15 @@ $KCODE = 'e' -require 'test/unit' +require 'fileutils' +test_unit_ext_dir = File.join(File.dirname(__FILE__), "..", "test-unit-ext") +unless File.exist?(test_unit_ext_dir) + system("svn", "co", "http://test-unit-ext.rubyforge.org/svn/trunk", + test_unit_ext_dir) +end +test_unit_ext_lib_dir = File.expand_path(File.join(test_unit_ext_dir, "lib")) +$LOAD_PATH.unshift(test_unit_ext_lib_dir) +require 'test-unit-ext' testdir = File.dirname(__FILE__) $:.unshift(testdir) Index: bindings/ruby/test/advanced-api-test/test_index_advanced.rb =================================================================== --- bindings/ruby/test/advanced-api-test/test_index_advanced.rb (revision 804) +++ bindings/ruby/test/advanced-api-test/test_index_advanced.rb (working copy) @@ -197,6 +197,8 @@ end def test_select_optarg_mode_ja + mecab_euc_jp = false # FIXME + omit("Mecab dictionary for EUC-JP is required") unless mecab_euc_jp index = TestIndex::create # テスト 文書 は ここ に あり ます index.update('1', 1, nil, 'テスト文書はここにあります') > 現在、 > Sennaのリリース前テストはこのRuby bindingsのテストを用いております。 > 将来的には、SennaQLという言語でテストを書く予定です。 わかりました。 > Cでのテストも書きたいんですが、 > なかなか手が回らない状態でして… そういえば、C用の使いやすい単体テストフレームワークで Cutterというものがあります。 http://cutter.sourceforge.net/ 試しにいくつかテストを書いてみましょうか?