2014年6月1日日曜日

shUnit2にパッチをあててJUnit形式のXMLファイルを吐けるようにしてみた

  1. https://code.google.com/p/shunit2/issues/detail?id=16 にアクセス
  2. 上記に添付してある shunit-2.1.6-xml.patch をダウンロード
  3. patchファイルをshunit2と同じディレクトリに配置
  4. [root@localhsot work]$ ls -ltr
    合計 100
    -rw-r--r-- 1 root   root   20944  5月 29 16:55 2014 shunit-2.1.6-xml.patch
    drwxr-xr-x 5 nifbat nifbat  4096  5月 29 16:59 2014 shunit2-2.1.6
    
  5. 以下のコマンドでパッチを当てる
  6. patch -u -p1 -d shunit2-2.1.6 < shunit-2.1.6-xml.patch
  7. パッチがあたることを確認する
  8. patching file bin/gen_test_results.sh
    patching file bin/which
    patching file lib/versions
    patching file src/shunit2
    patching file src/shunit2_test.sh
    patching file src/shunit2_test_asserts.sh
    patching file src/shunit2_test_failures.sh
    patching file src/shunit2_test_macros.sh
    patching file src/shunit2_test_misc.sh
    patching file src/shunit2_test_standalone.sh
    
  9. tempファイルをカレントディレクトリに作成しようとして権限がないと怒られるので「shunit2-2.1.6/src/shunit2」の以下も修正
  10. 1143 __shunit_system_out=$(mktemp 'shunit-out.XXXX')
    1144 __shunit_system_err=$(mktemp 'shunit-err.XXXX')
    ↓
    1143 __shunit_system_out=$(mktemp '/tmp/shunit-out.XXXX')
    1144 __shunit_system_err=$(mktemp '/tmp/shunit-err.XXXX')
    

パッチあてが完了したら実行する際に
export SHUNIT_OUTPUTDIR="/tmp" && sh testHoge.sh
みたいな感じで SHUNIT_OUTPUTDIR を export するようにしてください
そうしないとXMLファイルは標準出力に出力されてしまいます

1 件のコメント:

  1. こんばんは。

    シェルにもテスティングフレームワークがあるのは驚きです!

    返信削除