Це не задокументовано на веб-сайті, і люди, здається, мають проблеми з налаштуванням фреймворку. Чи може хтось показати покрокове введення для зразка налаштування проекту?
Відповіді:
Те, що сказав Арлахарен, в основному було правильним, за винятком того, що він пропустив ту частину, яка пояснює ваші помилки компонувальника. Перш за все, вам потрібно створити програму без ЕПТ як бібліотеку виконання. Ви завжди повинні робити це в будь-якому випадку, оскільки це справді спрощує розподіл вашої програми. Якщо ви цього не зробите, тоді всім вашим користувачам потрібна встановлена бібліотека середовища виконання Visual C ++, а ті, хто цього не зробить, будуть скаржитися на таємничу відсутність бібліотеки DLL у їхній системі ... на додаткові кілька сотень кілобайт, на які потрібно посилати ЕПТ статично, ви позбавляєте себе від головного болю пізніше в підтримку (повірте мені, це - я навчився цього важким шляхом!).
У будь-якому випадку, для цього ви переходите до властивостей цілі -> C / C ++ -> Генерація коду -> Бібліотека виконання, і її потрібно встановити як "Multi-Threading" для вашої збірки Release та "Multi-Threading Debug" для вашої збірки налагодження.
Оскільки GTEST бібліотека побудована таким же чином, ви повинні переконатися , що ви пов'язуєте з правильною версією нього , або ж компоновщик буде тягнути в інший копії бібліотеки часу виконання, що помилка ви бачили (до речі, це не має значення, якщо ви використовуєте MFC чи ні). Вам потрібно створити gtest як у режимі налагодження, так і в режимі випуску та зберегти обидві копії. Потім ви посилаєтесь на gtest.lib / gtest_main.lib у вашій версії збірки та gtestd.lib / gtest_maind.lib у вашій збірці налагодження.
Крім того, вам потрібно переконатися, що ваша програма вказує на каталог, де зберігаються файли заголовків gtest (у властивостях -> C / C ++ -> Загальні -> Додаткові каталоги включення), але якщо ви потрапили до помилки компонувальника, я припускаю що вам уже вдалося правильно виправити цю частину, інакше у вас буде набагато більше помилок компілятора, з якими потрібно мати справу в першу чергу.
(Ці інструкції забезпечують тестування, що працює для конфігурації налагодження. Застосувати той самий процес до конфігурації випуску має бути досить тривіально.)
Отримайте Google C ++ Testing Framework
C:\gtest
Створення фреймворкових бібліотек
C:\gtest\msvc\gtest.sln
у Visual StudioСтворіть і налаштуйте свій тестовий проект
C:\gtest\include
C:\gtest\msvc\gtest\Debug
або C:\gtest\msvc\gtest-md\Debug
, залежно від розташування gtestd.libgtestd.lib
Перевірка роботи всього
main()
функцію.Вставте такий код:
#include "stdafx.h"
#include <iostream>
#include "gtest/gtest.h"
TEST(sample_test_case, sample_test)
{
EXPECT_EQ(1, 1);
}
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
std::getchar(); // keep console window open until Return keystroke
}
Налагодження> Почати налагодження
Якщо все спрацювало, ви побачите вікно консолі, яке покаже результати модульного тесту.
Я зробив відеоурок про налаштування: http://www.youtube.com/watch?v=mzSzwQOmMRs
Побудувавши gtest, ось що я зробив:
Після цього я просто пишу свої тести, використовуючи TEST або TEST_F, як потрібно, і складаю їх разом зі своєю основною функцією:
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
gtest_main.lib
містить функцію за замовчуванням main
, тому ви, мабуть, не хочете її включати, якщо main
явно написали власну .
Якщо ви не хочете писати власний main () для тестів, ви можете використовувати функцію main (), визначену в gtest_main.lib, але тоді ви отримуєте помилки компонувальника "Точку входу потрібно визначити" у VS2012. У вашому тестовому проекті встановіть ProjectProperties-> Linker-> System-> SubSystem на «Console», оскільки це змусить VS2012 шукати точку входу під назвою «main ()» і знайде її в gtest_main.lib (за умови, що ви вже зв’язали) це правильно).
У Microsoft Visual Studio неправильно налаштований тип бібліотеки виконання спричиняє помилки посилання.
VS 2005 (і 2008) за замовчуванням використовує багатопотокову DLL або багатопотокову DLL для налагодження. Але бібліотека Google Test використовує Mulithreading або Mulithreaded час налагодження за замовчуванням.
Отже, виберіть відповідний тип бібліотеки часу виконання для тестової бібліотеки Google. (у Властивості конфігурації -> Генерація коду -> Бібліотека виконання).