googletest AKA gTestを試してみてください。他の単体テスト フレームワークよりも悪くはありませんが、使いやすさでいくつかを打ち負かすことができます。探している統合テスト用のツールではありませんが、ほとんどの場合に簡単に適用できます。このウィキペディアのページも役に立つかもしれません。
gTest プロジェクト ページのサンプルのコピーを次に示します。
#include <gtest/gtest.h>
namespace {
// The fixture for testing class Foo.
class FooTest : public ::testing::Test {
protected:
// You can remove any or all of the following functions if its body
// is empty.
FooTest() {
// You can do set-up work for each test here.
}
virtual ~FooTest() {
// You can do clean-up work that doesn't throw exceptions here.
}
// If the constructor and destructor are not enough for setting up
// and cleaning up each test, you can define the following methods:
virtual void SetUp() {
// Code here will be called immediately after the constructor (right
// before each test).
}
virtual void TearDown() {
// Code here will be called immediately after each test (right
// before the destructor).
}
// Objects declared here can be used by all tests in the test case for Foo.
};
// Tests that Foo does Xyz.
TEST_F(FooTest, DoesXyz) {
// Exercises the Xyz feature of Foo.
}
Scons は.cc
、変更されたときにビルドを処理できます。gTest を使用して、テストのセットアップとティアダウンを行うことができます。
いくつかのケースでは gTest を使用し、他のほとんどすべてのケースではカスタムの社内テスト自動化フレームワークを使用していることを付け加えることができます。このようなツールでは、要件に合わせて他のツールを調整したり微調整したりするよりも、独自のツールを作成する方が簡単な場合がよくあります。
IMO の 1 つの良いオプションであり、これは私たちのテスト自動化フレームワークが目指しているものであり、一般的なルーチンのライブラリ (サービスの開始/停止、何かのステータスの取得、特定のコンポーネントでのログの有効化/無効化など) と組み合わせて、nosetestsを使用することです。 . これにより、非常に使いやすく柔軟なシステムが得られます。また、C++ などではなく Python を使用するため、多くの人が QE を含むテスト ケースの作成に忙殺される可能性がありますが、これは必ずしも C++ を記述できる必要はありません。