現在、テストに CppUnit を使用していますが、 Categoriesの概念がサポートされていないことに不満を感じています。この考えをサポートする広く使用されている C++ 単体テスト フレームワークはありますか?
NUnit のドキュメントからの例を次に示します。
namespace NUnit.Tests
{
using System;
using NUnit.Framework;
[TestFixture]
[Category("LongRunning")]
public class LongRunningTests
{
// ...
}
}
アイデアは、テストをさまざまなカテゴリにグループ化し、指定されたカテゴリでテストを実行したり、カテゴリに基づいてテストを除外したりできるようにすることです。
CppUnit、Boost.Test、Google Test を試しましたが、この考えを直接サポートしているものはありません。
たとえば、単体テスト、統合テスト、中程度のテスト、大規模なテストがあります。単体テストと統合テストはすばやく実行されるため、自動ビルドのすべてのビルド構成 (リリース/デバッグ、x86/x64、linux/windows) で実行します。中程度のテストは実行に時間がかかるため、Release|x64|windowsビルドでのみ実行します。大きいテストは開発支援として存在し、自動ビルドで実行されることはありません。さらに、x86|windows にのみ存在する機能があります (複雑です)。私はこれらすべてを、CppUnit が喜んでサポートする複雑な階層で行います。ただし、「リリース」、「デバッグ」、「x86」などのカテゴリでこれを行う方がはるかに優れています.
CppUnit では、私のテストは現在 Fixture クラスにあります。理想的には、これらのフィクスチャにカテゴリをタグ付けして、それに応じてフィルタリングできるようにしたいと考えています。
テスト階層では行われず、カテゴリでは行われる重要なことの 1 つは、1 つのフィクスチャに複数のカテゴリを持たせることです。