Просмотр результатов теста Google в Visual Studio
Есть ли способ просмотреть результаты тестирования Google в Visual Studio? Если да, то как?
Я использую Google Test 1.5.0 и Visual Studio 2010
До сих пор я использовал Google Test из командной строки.
Я видел такие интеграции на других IDE (eclipse...), но еще не в VS
Ответы
Ответ 1
Посмотрите GoogleTestAddin - Я думаю, это то, что вы хотите.
Цитирование из описания CodePlex:
GoogleTestAddin является надстройкой для Visual Studio 2008 и 2010.
Это облегчает выполнение/отладка функций googletest, выбирая их.
Вам больше не нужно будет устанавливать аргументы команды вашего тестового приложения для выполнения только указанных функций или тестов.
Выход googletest перенаправляется в окно вывода Visual Studio. В случае неудачных тестов вы можете легко перейти к коду, дважды щелкнув сообщение об ошибке.
Ответ 2
Существует довольно простой способ использования параллельного вывода googletest для ваших модульных тестов.
В нескольких словах вы можете создать свой собственный класс принтера, который выводит результаты непосредственно в окно вывода VisualStudio. Этот способ кажется более гибким, чем другие, потому что вы можете контролировать как содержимое результата (формат, данные и т.д.), Так и пункт назначения. Вы можете сделать это прямо в своей функции main()
. Вы можете использовать несколько принтеров одновременно. И вы можете перейти к коду, дважды щелкнув сообщение об ошибке при неудачных тестах.
Это шаги для этого:
- Создайте класс, полученный из
::testing::EmptyTestEventListener
класс.
- Отменить необходимые функции. Используйте
OutputDebugString()
а не printf()
.
- Перед вызовом
RUN_ALL_TESTS()
создайте экземпляр класса и привяжите его к списку прослушивателей gtest.
Класс вашего принтера может выглядеть следующим образом:
// Provides alternative output mode which produces minimal amount of
// information about tests.
class TersePrinter : public EmptyTestEventListener {
void outDebugStringA (const char *format, ...)
{
va_list args;
va_start( args, format );
int len = _vscprintf( format, args ) + 1;
char *str = new char[len * sizeof(char)];
vsprintf(str, format, args );
OutputDebugStringA(str);
delete [] str;
}
// Called after all test activities have ended.
virtual void OnTestProgramEnd(const UnitTest& unit_test) {
outDebugStringA("TEST %s\n", unit_test.Passed() ? "PASSED" : "FAILED");
}
// Called before a test starts.
virtual void OnTestStart(const TestInfo& test_info) {
outDebugStringA(
"*** Test %s.%s starting.\n",
test_info.test_case_name(),
test_info.name());
}
// Called after a failed assertion or a SUCCEED() invocation.
virtual void OnTestPartResult(const TestPartResult& test_part_result) {
outDebugStringA(
"%s in %s:%d\n%s\n",
test_part_result.failed() ? "*** Failure" : "Success",
test_part_result.file_name(),
test_part_result.line_number(),
test_part_result.summary());
}
// Called after a test ends.
virtual void OnTestEnd(const TestInfo& test_info) {
outDebugStringA(
"*** Test %s.%s ending.\n",
test_info.test_case_name(),
test_info.name());
}
}; // class TersePrinter
Связывание принтера с списком слушателей:
UnitTest& unit_test = *UnitTest::GetInstance();
TestEventListeners& listeners = unit_test.listeners();
listeners.Append(new TersePrinter);
Этот подход описан в sample # 9 из образцов Googletest.
Ответ 3
Вы можете использовать событие post-build. Вот руководство:
http://leefw.wordpress.com/2010/11/17/google-test-gtest-setup-with-microsoft-visual-studio-2008-c/
Вы также можете настроить "Внешний инструмент" в меню "Инструменты Visual Studio" и использовать его для запуска целевого пути вашего проекта. (Подсказка: создайте элемент меню панели инструментов, чтобы было легче вызвать)
Ответ 4
Для Visual Studio 2012 существует также расширение, предоставляющее тестовый адаптер для Google Test в Visual Studio (таким образом, интегрируется с Visual Studios Test Explorer):
Google Test Adapter
Ответ 5
Используйте многофункциональный тестовый адаптер Google, предоставленный на GitHub и через галерея VS (или через меню "Расширения" VS). В настоящее время он поддерживает VS2013 и VS2015, поддержка VS2012 скоро появится.
Отказ от ответственности: я являюсь одним из авторов этого расширения.
Ответ 6
Используйте GoogleTest Runner для Visual Studio 2013, даже рекомендуется автор Google Test Adapter как лучшая альтернатива.