Наш продукт ранее был построен в Visual Studio 2008 и использовал GoogleMock 1.5.0.
Теперь, после переноса нашего продукта на Visual Studio 2010 , любая DLL-библиотека модульного теста, использующая GoogleMock, не будет загружаться в тестовом представлении Visual Studio и, следовательно, не может быть выполнена.
Наш производственный код написан на собственных классах C ++, экспортированных из C ++ DLL.
Наши модульные тесты написаны на C ++ / CLI, поэтому они могут быть размещены непосредственно в Visual Studio.В модульных тестах C ++ / CLI используются наши родные классы C ++, и ранее в этом сценарии GoogleMocks играли довольно удачно.
Мы встроили GoogleMock в статические библиотеки, использующие многопоточные DLL во время выполнения.Весь наш производственный код также использует многопоточную DLL.
Мы попробовали GoogleMock 1.5 и 1.6 RC, оба перестроены в VS2010.Но проблема возникает с обеими версиями GoogleMock.
Для воспроизведения просто:
- Создайте новый проект модульного теста C ++
- Добавьте gmock.lib и gmock_main.lib в качестве входных данных компоновщика
#include <gmock/gmock.h>
вверху файла заголовка модульного теста C ++ / CLI.
Проект будет работать нормально, но VS Test View не может загрузитьновый модульный тест DLL.Если вы закомментируете включение gmock.h
, библиотека DLL загрузится в тестовом представлении, и ее тестовые устройства будут выполнены.
Я надеюсь, что другой разработчик VS2010 столкнулся с этой проблемой и может предложить исправление.
Моя настройка:
- Windows 7 x64
- Visual Studio 2010, пакет обновления 1
- GoogleMock 1.5 или 1.6 RC
- Наше приложение построено как 32-битное (Win32 и x86).
- Весь наш код C ++, включая GoogleMock, скомпилирован с использованием компилятора vc100 VS2010.Наш код C ++ / CLI также создан для .NET 4.0.
Спасибо.