Подтвердить что ты не робот

Просмотр результатов теста Google в Visual Studio

Есть ли способ просмотреть результаты тестирования Google в Visual Studio? Если да, то как?
Я использую Google Test 1.5.0 и Visual Studio 2010

До сих пор я использовал Google Test из командной строки.
Я видел такие интеграции на других IDE (eclipse...), но еще не в VS

4b9b3361

Ответ 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 скоро появится.

Отказ от ответственности: я являюсь одним из авторов этого расширения.