2011-03-31 18 views
3

我們的產品以前在Visual Studio 2008中構建,並使用GoogleMock 1.5.0。GoogleMock問題與Visual Studio 2010和MSTest(C++/CLI)

現在,在將產品移植到Visual Studio 2010後,任何使用GoogleMock的單元測試DLL都不會在Visual Studio的測試視圖中加載,從而無法執行。

我們的產品代碼是用從C++ DLL導出的本地C++類編寫的。

我們的單元測試是用C++/CLI編寫的,因此它們可以直接託管在Visual Studio中。 C++/CLI單元測試練習我們的本地C++類,而GoogleMocks以前在這種情況下玩得相當開心。

我們將GoogleMock構建到運行時使用Multithreaded DLL的靜態庫中。我們所有的生產代碼也使用Multithreaded DLL。

我們嘗試過GoogleMock 1.5和1.6 RC,它們都在VS2010中重建。但是這兩個版本的GoogleMock都出現了這個問題。

複製,簡單地說:

  1. 創建一個新的C++單元測試項目
  2. 在C的頂部添加gmock.libgmock_main.lib作爲連接器的輸入
  3. #include <gmock/gmock.h> ++/CLI單元測試頭文件。

該項目將建立好,但VS測試視圖無法加載新的單元測試DLL。如果你註釋掉了gmock.h包含,DLL將在測試視圖中加載,並且它的測試裝置將執行。

我希望另一個VS2010開發人員遇到這個問題,並可以提出修復建議。

我的設置:

  • 的Windows 7 64位
  • 的Visual Studio 2010,Service Pack 1的
  • GoogleMock 1.5或1.6 RC
  • 我們的應用程序被內置爲32位的(Win32和x86)。
  • 我們所有的C++代碼,包括GoogleMock,都是使用VS2010的vc100編譯器編譯的。我們的C++/CLI代碼也是爲.NET 4.0構建的。

謝謝。

+0

GoogleMock是否表示它應該在VS2010中工作? – Lazarus 2011-03-31 09:47:56

+0

@Lazarus - 不是特別的,但GMock 1.6候選版本提供了一個VS2010解決方案文件和項目。如果可以通過VS2010中的vc100編譯器完成,我希望它能在VS2010單元測試中工作。但也許情況並非如此。 – dripfeed 2011-03-31 12:40:30

+0

@Lazarus:我在Visual Studio 2010中使用Google Mock 1.6時沒有任何問題。 – User 2011-11-16 00:15:46

回答

-1

我想我這是微軟的錯誤的文檔上的某個地方讀...

+0

您是否有任何聲明來源? – 2012-11-09 14:17:48

1

具有相同的代碼設置爲dripfeed(使用谷歌模擬與MSTest的測試C++本地類),我們得到了谷歌模擬1.6通過使用/ CLR編譯設置構建Google Mock來工作。

我們現在已經成功實施了Google Mock的一些測試!

注意:放置/ CLR設置可能需要調整其他編譯設置。