views:

220

answers:

3

I am trying to use Boost Test to add some much needed unit tests to my code. However I can't seem to get it to work. Right now I have the following code

#include <Drawing.h>
#define BOOST_AUTO_TEST_MAIN
#define BOOST_TEST_MODULE DrawingModelTests
#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(DrawingModelTests)

BOOST_AUTO_TEST_CASE ( DrawingConstructorTest)
{
    Drawing * drawing = new Drawing;

    delete drawing;
}

BOOST_AUTO_TEST_SUITE_END()

From what I understand I don't need to put a main or anything since boost will take care of it himself. However Visual Studio keep giving me a "entry point must be defined" error. Do I need to manually add a link to the static library or something? I am compiling as a standard .exe console application.

+1  A: 

My code is similar, and works fine. The only difference I can see is that I don't define BOOST_AUTO_TEST_MAIN at all. BOOST_TEST_MODULE tells it where to define main, as far as I'm aware.

jalf
A: 

In the end, the way to make it work was to use boost.test as a dynamic library instead of a static library.

Laurent Bourgault-Roy
A: 

Add /SUBSYSTEM:CONSOLE to the linker flags. In the project settings, this is on the Linker->System page. You can use boost as either dynamic or static library.

Khouri Giordano