미디어 파일 테스트를위한 정적 테스트 설정으로 작성된 BOOST TEST 코드를 일부 사용했습니다. 그러나 테스트 할 미디어 파일 수가 시간에 따라 달라질 수 있으므로 테스트 설정을 동적으로 만드는 것이 필요합니다. 즉 하루에 3 개의 파일이 있고 그 다음날 테스트 할 파일이 15 개가 될 수 있습니다.BOOST 테스트에서 테스트 케이스 대신 테스트 스위트 추가
정적 트리 구조를 빌드하기 위해 현재 설정에서 BOOST_AUTO_TEST_SUITE를 사용합니다. 테스트 트리에서 2 개의 test_suite의 TestSuiteD1 및 TestSuiteD2를 테스트 트리의 지점에 추가 할 때 문제가 발생합니다. 내 동적 테스트를 실행하려면이 위치에 2 개의 test_case 만 추가 할 수 있으므로이 트리 요소 아래에 test_case (TestCase1 - TestCase3)를 추가 할 수 없습니다. 나는 아래의 :: make_test_case으로하는 :: make_test_suite 버전의 인터넷을 검색하지만, 한 행운과 :
정적 부스트 :: unit_test :: ut_detail :: auto_test_unit_registrar TestSuiteD1_registrar0 (부스트 :: unit_test :: make_test_case (& fTestSuiteD1_invoker, "TestSuiteD1"), boost :: unit_test :: ut_detail :: auto_tc_exp_fail :: instance() -> value());
내가 대신 test_case의 test_suite를 추가 할 수 있다면 내가하고, 어떤 피드백을 얻을하고 싶은 것을 보여주기 위해 다음과 같은 몇 가지 예제 코드를 추가 한:
class MyTestSuite : public TestFixture1 {
public:
static void TestCase1() { //Some test };
static void TestCase2() { //Some test };
static void TestCase3() { //Some test };
test_suite* TestThis(string a, string b, string d)
test_suite* tsE = BOOST_TEST_SUITE("TestSuiteE");
tsE->add(BOOST_TEST_CASE(&TestCase1));
tsE->add(BOOST_TEST_CASE(&TestCase2));
tsE->add(BOOST_TEST_CASE(&TestCase3));
};
};
BOOST_AUTO_TEST_SUITE(TestSuiteA);
BOOST_FIXTURE_TEST_SUITE(TestSuiteB , TestFixture1);
BOOST_AUTO_TEST_SUITE(TestSuiteC);
BOOST_AUTO_TEST_SUITE(TestSuiteD);
static test_unit* TestSuiteD1_invoker (void) {
MyTestSuite MyTS;
MyTS.TestThis("a" , "b" , "D1");
return 0;
}
struct TestSuiteD1_id {};
static boost::unit_test::ut_detail::auto_test_unit_registrar
TestSuiteD1_registrar0 (boost::unit_test
::make_test_case(&fTestSuiteD1_invoker , "TestSuiteD1"),
boost::unit_test::ut_detail::auto_tc_exp_fail<TestSuiteD1_id
>::instance()->value());
static test_unit* TestSuiteD2_invoker (void) {
MyTestSuite MyTS;
MyTS.TestThis("a" , "b" , "D2");
return 0;
}
struct TestSuiteD2_id {};
static boost::unit_test::ut_detail::auto_test_unit_registrar TestSuiteD2_registrar0
(boost::unit_test::make_test_case(&fTestSuiteD2_invoker , "TestSuiteD2"),
boost::unit_test::ut_detail::auto_tc_exp_fail<TestSuiteD2_id
>::instance()->value());
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE_END()