xmlunit の調査
テストで xml を比較する必要があり、調べていたら、
- http://www.infoq.com/jp/articles/xml-unit-test
> InfoQ: XMLをユニットテストする
を見つけた。そのなかで xmlunit が説明されている。
java で xmlnunit を利用する例を以下に置いた。
- http://homepage2.nifty.com/youichi_kato/src.html
> xmlunit のサンプル(2009-04-05)
> my-xmlunit-2009-04-05.tgz
> xml の比較ツールの利用例。これを xfy から xvcd から使えるようにすることでテストに利用できる。
jruby からの利用を試みたが、うまくいかなかった。
$ cat SampleTest.rb
require 'pp'
require 'java'
require 'junit-3.8.2.jar'
import 'junit.framework.TestCase'
import 'junit.framework.TestSuite'
import 'junit.textui.TestRunner'
import 'junit.framework.Assert'
class SampleTest < TestCase
def initialize
super
end
def setUp
pp "----- setUp"
end
def tearDown
pp "----- tearDown"
end
def testFoo
pp "----- testFoo"
#Assert::assertTrue(true)
end
end
t = SampleTest.new
t.setName('testFoo')
TestRunner::run(t)
実質的には何もしていないコードであるが、
実行すると、次のようになる。
$ jruby SampleTest.rb
."----- setUp"
"----- tearDown"
F
Time: 0.009
There was 1 failure:
1) testFoo(org.jruby.proxy.junit.framework.TestCase$Proxy0)junit.framework.AssertionFailedError: Method "testFoo" not found
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.jruby.javasupport.JavaMethod.invokeWithExceptionHandling(JavaMethod.java:298)
at org.jruby.javasupport.JavaMethod.invoke_static(JavaMethod.java:278)
at org.jruby.java.invokers.StaticMethodInvoker.call(StaticMethodInvoker.java:47)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:112)
at SampleTest.__file__(SampleTest.rb:53)
at SampleTest.load(SampleTest.rb)
at org.jruby.Ruby.runScript(Ruby.java:577)
at org.jruby.Ruby.runNormally(Ruby.java:480)
at org.jruby.Ruby.runFromMain(Ruby.java:354)
at org.jruby.Main.run(Main.java:229)
at org.jruby.Main.run(Main.java:110)
at org.jruby.Main.main(Main.java:94)
FAILURES!!!
Tests run: 1, Failures: 1, Errors: 0
となってしまう。
setUp, tearDown は呼び出されているが、
testFoo の呼び出しがうまくできていない。
refrection での java-class, jruby-class のやり取りが問題のようだが)
junit を jruby で使うことは無理なのか?
xmlunit の diff をつかって、jruby の respc や test/unit で利用するしかないのかも知れない。
« ピックアップ: アウトラインとマインドマッピングをこなす, GCCのプリプロセッサの動きをみて遊ぶ, etc... | トップページ | ピックアップ:世界中のオタク部屋, 「戦略的OS」の開発がことごとく失敗している点, etc... »
この記事へのコメントは終了しました。
« ピックアップ: アウトラインとマインドマッピングをこなす, GCCのプリプロセッサの動きをみて遊ぶ, etc... | トップページ | ピックアップ:世界中のオタク部屋, 「戦略的OS」の開発がことごとく失敗している点, etc... »
コメント