在BOOST test中添加测试套件而不是测试用例
Adding test suite instead of test case in BOOST TEST
我接管了一些BOOST TEST代码,这些代码是作为测试媒体文件的静态测试设置编写的。然而,要求是使测试设置动态,因为要测试的媒体文件的数量可能随着时间的推移而变化,即一天可能有3个文件,第二天可能有15个文件要测试。
当前的设置使用许多BOOST_AUTO_TEstrongUITE来构建静态树结构,我的问题是,当我在测试树中想要将2个TEstrongUITE的TestSuiteD1和TestSuiteD2添加到测试树中以运行我的动态测试时,我只能在该位置添加2个TEST_case,因此无法在该树元素下面添加更多的test_case(TestCase1-TestCase3)。我一直在互联网上搜索以下版本的::make_testronguite,但没有运气:
静态提升::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::instance()->value());
我在下面添加了一些示例代码,以显示我想做什么,并在可能添加testronguite而不是test_case的情况下获得一些反馈:
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()
我不确定固定装置是否是正确的选择。查看BOOST_TEST_CASE_EMPLATE
BOOST_TEST_CASE_TEMPLATE_FUNCTION( my_test, T )
{
BOOST_CHECK_EQUAL( sizeof(T), 4 );
}
test_suite*
init_unit_test_suite( int argc, char* argv[] )
{
typedef boost::mpl::list<int,long,unsigned char> test_types;
framework::master_test_suite().
add( BOOST_TEST_CASE_TEMPLATE( my_test, test_types ) );
return 0;
}
相关文章:
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 从父数组测试用例构造二叉树失败
- 在Raspbian上编译pybind11测试用例时出现致命错误
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 某些测试用例未通过
- 如何在多个 Catch2 测试用例中检查相同的条件
- 谷歌启动2018,测试用例中的整数错误
- 用于查找连续子数组的最大总和的代码使测试用例失败
- 查找不适用于 c++ 中特定测试用例的最长子字符串
- 测试用例状态为失败,但返回的值为 true
- kill syscommand 在 Catch2 测试用例中失败
- 大型测试用例中C++ dfs 问题中的小错误
- 为什么在输入的第一行输入测试用例数量后得到垃圾值?
- C++ Catch 是否有类似 NUnit 的测试用例的东西,具有多个参数/输入选项
- 如何修复此代码对几个测试用例的错误答案?
- 所有测试用例都将小数点转换为二进制数
- C++回文检查解决方案被一个测试用例跳闸
- 在测试用例中获取 BOOST 测试套件名称
- Google测试函数setup()和teardown()会针对每个测试用例或整个测试套件调用
- 在手动定义的套件树中提升测试用例和套件fixture