2016年2月15日月曜日

iutest v1.15.0 をリリースしました

C++ テスティングフレームワーク iutest v1.15.0 をリリースしました。
変更点は以下の通りです。

  • 追加
    • --iutest_output オプションで repeat 回数のフォーマットに対応 e.g. --iutest_output=xml:test_%d.xml
    • CSV ファイルから値のパラメータ作成に対応
    • 値のパラメータ化テストのテスト名指定方法の Google Test 互換対応
  • 変更
    • IUTEST_ALIAS_TESTNAME_F,IUTEST_JAPANESE_NAME_F の引数の順番を変更
    • 値のパラメータ化テストのテスト名指定方法を変更
    • IUTEST_TYPED_TEST_APPEND_TYPENAME を IUTEST_HAS_TYPED_TEST_APPEND_TYPENAME に変更
  • 修正
    • バグ修正

今回 v1.15.0 の追加機能は、3つです。

1つ目は、--iutest_output オプションでテスト結果を出力する際に、リピート回数をファイル名に含められるようにしました。
今までリピート実行した場合に出力されるテスト結果のファイルは1つだけでしたが、フォーマット指定でリピート回数をファイル名に含めることで、リピート毎にファイルを出力できるようになりました。
e.g. --iutest_output=xml:test_%d.xml

2つ目は、CSV ファイルから動的に値のパラメータを生成できるようになりました。以下のように使います。
class CSVValuesTest : public ::iutest::TestWithParam<int> {};

IUTEST_P(CSVValuesTest, Test)
{
 int v = GetParam();
 IUTEST_SUCCEED() << v;
}
IUTEST_INSTANTIATE_TEST_CASE_P(A, CSVValuesTest, ::iutest::CSV<int>("csvparams.csv"));
::iutest::CSV 関数のテンプレートパラメータに型を指定してください。その型で csv をパースします。
第一引数に csv ファイルのパスを指定します。
(実行ファイルからの相対パス。パス解決方法をもう少しなんとかしたい…)
動的にパラメータを生成するので、リビルドすることなく csv ファイルを更新するだけでパラメータの変更ができるのがメリットです。

3つ目は、Google Test 互換の値のパラメータ化テストのテスト名指定方法に対応しました。
こちらの機能を含んだ Google Test はまだリリースされていませんが、github で確認できます。
(そろそろ出るかなぁ~と思っていたのですが、まだみたいですね。)



また、今回は破壊的変更が2件あります。
1つ目は IUTEST_ALIAS_TESTNAME_F と IUTEST_JAPANESE_NAME_F の引数の順番を入替えました。
これにより、このマクロを使用していたテストコードに変更が必要になりますが、
こちらの機能は C++03 環境でテスト名に日本語を使いたいために用意したもので、まぁそんなに使われいないだろうということで変えちゃいました。

2つ目は値のパラメータ化テストのテスト名指定方法を変更しています。
v1.14.0 で試験的に入れた機能でしたが Google Test の実装方法との互換性を考慮して、今回から変更がされています。

今回は以上です。

0 件のコメント:

コメントを投稿