[Senna-dev 836] Re: Rubyバインディングのテストの走らせ方

Back to archive index

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/

試しにいくつかテストを書いてみましょうか?




Senna-dev メーリングリストの案内
Back to archive index