C++ 単体テストの更新:Boost.Test アダプターと改善された Google Test サポートの発表

5 月に、C++ チームは Test Adapter for Google Test を発表しました。これは、Visual Studio で直接 Google Test ベースの単体テストを実行および管理できるようにする Visual Studio 拡張機能です。テスト エクスプローラー ウィンドウを使用してこれを行うことができます。また、Visual Studio Enterprise ユーザーの場合は、コード カバレッジ分析を実行して、テストされていないコードをチェックできます。それ以来、私たちのチームは単体テストのサポートをさらに改善するために取り組んできました。

Visual Studio で C++ 単体テストを行うのが初めての場合は、概要について、ブログ記事「Visual Studio での C++ 単体テスト」を参照することをお勧めします。そこで説明されているテスト ツールは、これらの最新の単体テストの更新にも適用できます。

本日、共有するいくつかの更新があります:

<オール>
  • Visual Studio 2017 用の新しい Test Adapter for Boost.Test 拡張機能により、Boost.Test へのサポートを拡張しています。
  • さらに、Test Adapter for Google Test がバージョン 0.10.1 に更新され、多数の未解決のバグが修正されました。また、Google Test フレームワークの nuget.org で NuGet パッケージを提供するようになりました:
    • LIB、動的ランタイムとしてビルドされた Google Test (どれを選択すればよいかわからない場合に推奨)
    • DLL、動的ランタイムとしてビルドされた Google Test
    • LIB、静的ランタイムとしての Google Test ビルド
  • 両方のテスト アダプターのコードは、オープン ソース ライセンスに基づいて GitHub で公開されているので、自由にチェックして、必要に応じて独自の変更を加えることができます。 Visual Studio で使用したい別のテスト フレームワークがある場合は、これらのプロジェクトが将来のテスト アダプターのインスピレーションとして役立つことを願っています。
    • Google Test GitHub のテスト アダプター
    • Boost.Test GitHub のテスト アダプター

    Boost.Test のテスト アダプター (プレビュー)

    Boost.Test のテスト アダプターは、ETAS GmbH の Gunter Wirth のチームによる既存の Boost Unit Test Adapter (GitHub URL) のフォークです。更新された拡張機能には、Visual Studio 2017 のサポートを有効にする多数のバグ修正が含まれています。さらに、Boost.Test のテスト アダプターには、Boost バージョン 1.64 のサポートが追加されています (バージョン 1.60 ~ 1.63 のサポートも維持されています)。 Boost.Test の詳細については、公式ドキュメントをご覧ください。

    この拡張機能は現在プレビューです 、対処すべき未解決の問題がまだいくつかあります。リリースに関するすべてのフィードバックに感謝します。拡張機能で問題が発生した場合は、開発者コミュニティでバグを報告してください。便宜上、以下に既知の問題のリストをまとめました。これらの問題は、拡張機能の今後の更新で対処する必要があります。

    Boost.Test (プレビュー) のテスト アダプターをダウンロード

    Visual Studio Marketplace から新しいアダプターをダウンロードできます。

    Google Test Update v0.10.1 用のテスト アダプター

    また、C++ チームは、Microsoft フォークの元になったオリジナルの Google Test Adapter の作成者である Christian Soltenborn と Jonas Gefele と協力して、Google Test サポートのストーリーを改善しています。 Test Adapter for Google Test は、元のアダプターのバージョン 0.10.0 および 0.10.1 の変更をマージします。完全なリリース ノートは GitHub にあります。さらに、テスト検出の実行時間が大幅に改善されました。

    • LIB、動的ランタイムとしてビルドされた Google Test (どれを選択すればよいかわからない場合に推奨)
    • DLL、動的ランタイムとしてビルドされた Google Test
    • LIB、静的ランタイムとしての Google Test ビルド

    GitHub でアダプターをテストする

    私たちは、これらのテスト アダプターに関する作業について透明性を保ち、オープン ソースを維持することで元のプロジェクトの精神を維持することを目指しています。さらに、これにより、変更に貢献し、これらのアダプターの今後の改善に貢献したり、他のテスト フレームワーク用の独自のアダプターを作成したりする機会が得られます。 Visual Studio テスト プラットフォームは拡張可能であるため、製品のテスト ツールをさまざまなフレームワークで動作させることが可能です。以下のリンクから GitHub のこれらのプロジェクトをチェックしてください:

    • Google Test GitHub のテスト アダプター
    • Boost.Test GitHub のテスト アダプター

    行動を促すフレーズ

    私たちは、C++ 単体テストの経験について長年にわたって多くのフィードバックを受け取りました。それぞれの GitHub イシュー トラッカーまたは開発者コミュニティにアダプターに関するフィードバックをお寄せください。これらのプロジェクトもオープン ソースであるため、独自のプル リクエストを送信することもできます。

    新しい単体テスト ツールをまだ試していない場合は、 Test Adapter for Google Test をお試しください。 (そしてブログ投稿:単体テストと未来:Google Test のテスト アダプターの発表) を確認するか、Boost.Test のテスト アダプター を試してください。 今日!