Проблема GoogleMock с Visual Studio 2010 и MSTest (C ++ / CLI) - PullRequest
3 голосов
/ 31 марта 2011

Наш продукт ранее был построен в 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.

Для воспроизведения просто:

  1. Создайте новый проект модульного теста C ++
  2. Добавьте gmock.lib и gmock_main.lib в качестве входных данных компоновщика
  3. #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.

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 ноября 2012

Имея ту же настройку кода, что и dripfeed (используя Google Mock для тестирования собственных классов c ++ с помощью MSTest), мы получили Google Mock 1.6 для работы, создав Google Mock с настройкой компиляции / CLR.

Теперь мы успешно реализовали некоторые тесты с помощью Google Mock!

Примечание. Для установки параметра / CLR может потребоваться изменить другие параметры компиляции.

0 голосов
/ 07 мая 2011

Мне кажется, я где-то читал в документации, что это ошибка Microsoft ...

...