以前、上記記事で Shippable + Wandbox で C++ のテスト実行をするようにしたのですが、iutest v1.15.2(v1.15.1) で Wandbox でのテスト結果を xml 出力できるように対応したので、テスト結果の集計まで行うようにしました。
iutest + Wandbox
iutest の Wandbox 実行ツールを利用することで、iutest で記述されたテストコードを Wandbox 上で実行できます。iutest v1.15.2(v1.51.1) では、このツールに xml 出力機能が追加されました。iuwandbox.py test.cpp --xml test_result.xml--xml コマンドラインオプションを付けると、指定のパスにテスト結果の xml を出力します。
Shippable でテスト結果 xml の集計
Shippable では junit 形式のテストレポートが集計できます。Shippable Build Configuration - Shippable Documentation
方法としては簡単です。
shippable/testresults フォルダを作成して、そのフォルダに xml ファイルをコピーするだけです。
e.g.
build: ci: - mkdir -p shippable/testresults - nosetests python/sample.py --with-xunit --xunit-file=shippable/testresults/nosetests.xml
iutest の場合
iutest では以下のようにテストをしています。(Shippable だけでなく Wercker + Wandbox でも同様の方法でテストを実行しています。)
language: python python: 2.7 cache: true parallelized_test: true branches: except: - gh-pages install: - pip install requests before_script: - export PYTHONDONTWRITEBYTECODE=1 - make -C tools/fused - mkdir -p shippable/testresults script: - cd tools/wandbox - python ./iuwandbox.py --list_options ${WANDBOX_COMPILER} - python ./iuwandbox.py ../../test/syntax_tests.cpp -c ${WANDBOX_COMPILER} -f"-DIUTEST_USE_MAIN=1" --default --boost nothing --encoding utf-8-sig --expand_include --verbose --xml ../../shippable/testresults/test_result.xml env: matrix: - WANDBOX_COMPILER=gcc-head - WANDBOX_COMPILER=gcc-6.1.0 - WANDBOX_COMPILER=gcc-5.3.0 - WANDBOX_COMPILER=gcc-5.2.0 # travis (5.2.1) # - WANDBOX_COMPILER=gcc-5.1.0 # wercker # - WANDBOX_COMPILER=gcc-4.9.2 # circle ci # - WANDBOX_COMPILER=gcc-4.9.1 # wercker # - WANDBOX_COMPILER=gcc-4.9.0 # wercker # - WANDBOX_COMPILER=gcc-4.8.2 # wercker - WANDBOX_COMPILER=gcc-4.8.1 - WANDBOX_COMPILER=gcc-4.7.3 # - WANDBOX_COMPILER=gcc-4.6.4 # drone - WANDBOX_COMPILER=gcc-4.5.4 # - WANDBOX_COMPILER=gcc-4.4.7 # snap ci - WANDBOX_COMPILER=gcc-4.3.6 - WANDBOX_COMPILER=clang-head # - WANDBOX_COMPILER=clang-3.8 # travis ci # - WANDBOX_COMPILER=clang-3.7 # circle ci / wercker # - WANDBOX_COMPILER=clang-3.6 # semaphore # - WANDBOX_COMPILER=clang-3.5 # c++config.h not found - WANDBOX_COMPILER=clang-3.4 # - WANDBOX_COMPILER=clang-3.3 # wercker # - WANDBOX_COMPILER=clang-3.2 # wercker # - WANDBOX_COMPILER=clang-3.1 # wercker - WANDBOX_COMPILER=clang-3.0 after_success: - echo OK notifications: email: on_success: change on_failure: always
最後に
Wandbox でのテスト結果を xml ファイルに出力できるようになったことで、テストツールとして完成されてきた感じがしてきました。iutest のテストとしてはかなり便利に使わせていただいています。
もう個人的には最強の環境になったかなと思います。
ただ、複数ファイルのコンパイルができない(ヘッダーは可能)ので、まだちょっとプロダクトのテストをするとまでは至っていませんが、ヘッダーオンリーなライブラリーとかであれば、かなり良いテスト環境になるのではないでしょうか。
0 件のコメント:
コメントを投稿