2015年6月22日月曜日

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

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

  • 追加
    • Matcher に MatchesRegex,ContainsRegex を追加
    • Matcher に ElementsAreArrayForward を追加
    • IUTEST_*_MATCHES_REGEXEQ,NE、IUTEST_*_CONTAINS_REGEXEQ,NE 追加
    • --iutest_filter=@filter.txt のようにファイルからフィルター指定できるように対応
    • quick_exit 対応
    • Visual Studio 2015 RC 対応
    • twilio 対応
    • Nuget パッケージ公開
  • 変更
    • IUTEST_PACKAGE v2 (多重定義制限の撤廃)
    • ElementsAreArray で要素数の一致チェックを行うように変更(以前までの ElementsAreArray は ElementsAreArrayForward に変更)
    • IUTEST_REPORT_SKIPPED を IUTEST_HAS_REPORT_SKIPPED に変更
  • 修正
    • IUTEST_MAKE_PEEP で関数ポインターの typedef をしなくてもいいように修正
    • バグ修正

今回は、正規表現 Matcher と Assertion の追加が大きな変更点です。
以前のバージョンから挙動を変更している部分もありますので、ご注意ください。


今回更新した機能の一部を紹介したいと思います。
正規表現アサーション
IUTEST(AssertionTest, MATCHES_REGEXEQ)
{
  const char test[] = "te0123st";
  IUTEST_ASSERT_MATCHES_REGEXEQ("te[0-9]*st", test);
}
アサーションとして追加したのは、以下の4つ
  • IUTEST_*_MATCHES_REGEXEQ
  • IUTEST_*_MATCHES_REGEXNE
  • IUTEST_*_CONTAINS_REGEXEQ
  • IUTEST_*_CONTAINS_REGEXNE
完全一致と部分一致それぞれ、EQとNE 2つずつです。
これらアサーションは拡張機能なので、Google Test モードでも使用できます。

また、アサーションとは別に正規表現 Matcher も追加しています。
こちらは、Google Mock 同等の MatchesRegex, ContainsRegex が使用できます。


ファイルからのフィルター指定
--iutest_filter=@filepath
のように、@ を付けてパス指定をすることでファイルからフィルターの指定をできるようにしました。
コマンドライン引数には、長さの上限があるのでとても長いフィルターを指定したい場合に役立ちそうです。
また、CI 環境でテストの推移によってフィルターを変える、というような使い方もできそうですね。


IUTEST_PACKAGE v2 (多重定義制限の撤廃)
最後は地味な修正ですが、IUTEST_PACKAGE の制限を撤廃しました。
これまで、IUTEST_PACKAGE は一つのパッケージに付き、一箇所でしか使用できませんでした。
なので、以下のようにヘッダーファイルで IUTEST_PACKAGE(pkg1) をしたら、ソースファイルでは普通に namespace pkg1 と書く必要がありました。

// ヘッダー
IUTEST_PACKAGE(pkg1)
{
}

// ソース
namespace pkg1
{
}

こらが、v1.12.0 以降からはすべて IUTEST_PACKAGE(pkg1) のように統一した書式で書けるようになります。
// ソースでもヘッダーでも
IUTEST_PACKAGE(pkg1)
{
}




今回はこれで以上となります。
Twilio 対応、NuGet 対応については、別途ブログに書いてますので、そちらを参照してください。
ブログズミ: Twilio を使ってみた - その5

NuGet は次週。それでは。


0 件のコメント:

コメントを投稿