首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost测试错误: main已经定义

Boost测试错误: main已经定义
EN

Stack Overflow用户
提问于 2014-03-11 14:25:45
回答 2查看 2.9K关注 0票数 4

我有一个Visual Studio项目,我想用Boost.Test进行一些单元测试。

我有两份文件:

档案1:

代码语言:javascript
复制
#define BOOST_TEST_MODULE FileX

#include <boost/test/unit_test.hpp>
#include <stdio.h>

BOOST_AUTO_TEST_SUITE(test_suite_name)

BOOST_AUTO_TEST_CASE(TestFileX)
{
    BOOST_CHECK(true);
}


BOOST_AUTO_TEST_SUITE_END()

和档案2:

代码语言:javascript
复制
#define BOOST_TEST_MODULE XContainer

#include <boost/test/unit_test.hpp>
#include <stdio.h>

BOOST_AUTO_TEST_SUITE(test_suite_name2)

BOOST_AUTO_TEST_CASE(TestXContainer)
{
    BOOST_CHECK(true);
}

BOOST_AUTO_TEST_SUITE_END()

当我编译这个项目时,我会得到一个链接错误,即main已经定义了。我注意到main文件是在unit_test.hpp中定义的,但是我需要为测试宏包括它。

如何在两个单独的文件中添加两个测试用例?

EN

回答 2

Stack Overflow用户

发布于 2014-07-02 21:28:42

真正的问题是,BOOST_TEST_MODULE只打算在整个测试可执行文件中定义一次。定义BOOST_TEST_MODULE还定义了BOOST_TEST_MAIN,它引入了main的实现。

因此,在一个地方,将BOOST_TEST_MODULE定义为全局套件的名称,因此也定义BOOST_TEST_MAIN以获得main的单个实现。

这是我需要在我的文件重写中注意的微妙之处。

票数 10
EN

Stack Overflow用户

发布于 2020-05-09 13:21:07

在testXXX.cpp中不应该包含testXXX.h。

所有testXXX.h文件都应该包含在main.cpp中,其中应该包含#define BOOST_TEST_MODULE TestXXXXXXXXX

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22328644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档