gpt4 book ai didi

c++ - boost 测试不 init_unit_test_suite

转载 作者:可可西里 更新时间:2023-11-01 16:46:05 26 4
gpt4 key购买 nike

我运行这段代码

#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK

#include <boost/test/unit_test.hpp>
#include <boost/test/unit_test_log.hpp>
#include <boost/filesystem/fstream.hpp>

#include <iostream>

using namespace boost::unit_test;
using namespace std;


void TestFoo()
{
BOOST_CHECK(0==0);
}

test_suite* init_unit_test_suite( int argc, char* argv[] )
{
std::cout << "Enter init_unit_test_suite" << endl;
boost::unit_test::test_suite* master_test_suite =
BOOST_TEST_SUITE( "MasterTestSuite" );
master_test_suite->add(BOOST_TEST_CASE(&TestFoo));
return master_test_suite;

}

但是在运行时它说

Test setup error: test tree is empty

为什么不运行 init_unit_test_suite 函数?

最佳答案

您是否真的动态链接到 boost_unit_test 框架库?此外,手动测试注册和 BOOST_TEST_MAIN 定义的组合不起作用。动态库需要稍微不同的初始化例程。

避免此障碍的最简单方法是使用 automatic test registration

#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK

#include <boost/test/unit_test.hpp>
#include <boost/test/unit_test_log.hpp>
#include <boost/filesystem/fstream.hpp>

#include <iostream>

using namespace boost::unit_test;
using namespace std;

BOOST_AUTO_TEST_SUITE(MasterSuite)

BOOST_AUTO_TEST_CASE(TestFoo)
{
BOOST_CHECK(0==0);
}

BOOST_AUTO_TEST_SUITE_END()

当您添加越来越多的测试时,这会更健壮并且扩展性更好。

关于c++ - boost 测试不 init_unit_test_suite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com