Использование буст-теста с Visual Studio - PullRequest
8 голосов
/ 15 января 2010

Я пытаюсь использовать Boost Test, чтобы добавить несколько необходимых модульных тестов в мой код. Однако я не могу заставить его работать. Прямо сейчас у меня есть следующий код

#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()

Из того, что я понимаю, мне не нужно ставить основной или что-то еще, так как boost сам позаботится об этом. Однако Visual Studio продолжает выдавать ошибку «точка входа должна быть определена». Нужно ли вручную добавлять ссылку на статическую библиотеку или что-то? Я компилирую как стандартное консольное приложение .exe.

Ответы [ 5 ]

17 голосов
/ 19 марта 2010

Добавить / SUBSYSTEM: КОНСОЛЬ к флагам компоновщика. В настройках проекта это на странице Linker-> System. Вы можете использовать boost как динамическую или статическую библиотеку.

9 голосов
/ 22 июля 2011

У меня была эта проблема с VS2010, и решение состояло в том, чтобы установить «Свойства конфигурации -> Линкер -> Дополнительно -> Точка входа» на «Главное» для проекта.

1 голос
/ 06 августа 2013

Я установил «Свойства конфигурации -> Компоновщик -> Дополнительно -> Точка входа» на «mainCRTStartup», что и помогает мне. (В моей конкретной конфигурации сборки я статически связываю библиотеки boost).

1 голос
/ 15 января 2010

Мой код похож и отлично работает.Единственное отличие, которое я вижу, в том, что я вообще не определяю BOOST_AUTO_TEST_MAIN.BOOST_TEST_MODULE говорит, где определить main, насколько я знаю.

0 голосов
/ 24 января 2010

В конце концов, способ заставить это работать - использовать boost.test в качестве динамической библиотеки вместо статической.

...