2010-01-15 76 views
8

我正在嘗試使用Boost Test爲我的代碼添加一些非常需要的單元測試。然而,我似乎無法讓它工作。現在,我有以下代碼在Visual Studio中使用boost測試

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

據我瞭解,我不需要把主或任何事情,因爲提升將照顧它自己。不過,Visual Studio不斷給我一個「入口點必須定義」的錯誤。我需要手動添加一個鏈接到靜態庫或其他東西?我正在編譯爲標準的.exe控制檯應用程序。

回答

9

我在VS2010中遇到了這個問題,解決方法是將項目的'配置屬性 - >鏈接器 - >高級 - >入口點'設置爲'main'。

+0

我完全不能相信這一次,我終於可以回答這個問題^^。謝謝! – 2011-07-22 12:52:50

1

我的代碼很相似,並且工作正常。我能看到的唯一區別是我根本沒有定義BOOST_AUTO_TEST_MAIN。據我所知,BOOST_TEST_MODULE告訴它在何處定義main

0

最終,它的工作方式是使用boost.test作爲動態庫而不是靜態庫。

16

添加/ SUBSYSTEM:CONSOLE到鏈接器標誌。在項目設置中,這在鏈接器 - >系統頁面上。您可以使用boost作爲動態庫或靜態庫。

+1

我有同樣的問題,使用谷歌測試庫,並鏈接到gtest_main.lib。 這也解決了這個問題。 – user75810 2011-02-23 17:22:55

1

我將'配置屬性 - >鏈接器 - >高級 - >入口點'設置爲'mainCRTStartup',這對我來說很有用。 (在我特別的構建配置中,我靜態鏈接增強庫)。

+0

只有這對我也有幫助,謝謝! – user2199593 2016-04-05 10:53:57