И DocTest, и Catch 2 не запускают юнит-тест - PullRequest
0 голосов
/ 19 мая 2019

Я запускаю новый проект Win32 C ++ с использованием Visual Studio 2019 (v. 16.0.4) и Resharper (v. 2019.1.1) и не могу получить ни модульное тестирование Catch2, ни Doctest для запуска теста. Я предпочитаю Doctest и использовал его первым, и когда это не сработало, я попробовал Catch2 и получил тот же результат. Обе платформы находят тест, но дают статус «Неокончательный тест не запущен». Предупреждение Catch2 гласит: «2019.05.19 08: 47: 46.447 WARN Элемент Тест CatchTest был оставлен в ожидании после его завершения. ". Весь код ниже для Catch2:

Engine.h

#pragma once

#include "pch.h";
#include <SDKDDKVer.h>;

int  wWinMain( dv* ghInst, dv* ghPrevInst, dv* gupCmdLine, dsd gsdCmdShowFlag);

int test();

Engine.cpp

#include "pch.h"
//#include "..\DocTest_2_2_2.h"
#include "..\Catch_2_7_2.h"
#include "Engine.h"


int wWinMain( dv* ghInst, dv* ghPrevInst, dv* gupCmdLine, dsd gsdCmdShowFlag) {
  return 0;
  };


int test() { return 3; }

TEST_CASE("CatchTest Test") {

  REQUIRE(test() == 3);
}

DocTest.cpp (Используя код Catch2, код DocTest закомментирован)

#include "pch.h"

//#define DOCTEST_CONFIG_IMPLEMENT
//#include "..\DocTest_2_2_2.h"

#define CATCH_CONFIG_MAIN
#include "..\Catch_2_7_2.h"

Я обнаружил, что такая проблема возникла в разговорах о предыдущих версиях Visual Studio и Resharper, но я использую последние версии и все еще имею проблему.

В опциях Resharper я выбрал «Включить поддержку Catch», выбранный в «Тестах C ++», а также «Включить поддержку MSTest», выбранный в «MsTest». У меня есть архитектура x64, выбранная как для модульных тестов, так и для всех параметров конфигурации проекта.

Любая помощь с этим приветствуется. Спасибо.

1 Ответ

0 голосов
/ 20 мая 2019

Ваш wMinMain не запускает тесты.См. doctest docs о том, как предоставить правильную main точку входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...