Попробуйте googletest AKA gTest он ничуть не хуже любого другого фреймворка для юнит-тестов, но может также побить некоторых с простотой использования.Не совсем тот инструмент для интеграционного тестирования, который вы ищете, но в большинстве случаев его легко применить.Эта страница wikipedia также может быть полезна для вас.
Вот копия примера на странице проекта 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, и это то, что наша платформа автоматизации тестированиядля продвижения используются тесты на нос в сочетании с библиотекой общих процедур (таких как запуск / остановка служб, получение статуса чего-либо, включение / отключение регистрации в определенных компонентах и т. д.).Это дает вам гибкую систему, которая также довольно проста в использовании.И поскольку он использует Python, а не C ++ или что-то подобное, все больше людей могут быть заняты созданием тестовых случаев, включая QE, которые не обязательно должны быть в состоянии писать на C ++.