И DocTest, и Catch 2 не запускают юнит-тест

Я начинаю новый проект 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++ Tests", а также "Включить поддержку MSTest", выбранный в "MsTest". У меня есть архитектура x64, выбранная как для модульных тестов, так и для всех параметров конфигурации проекта.

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

1 ответ

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

Другие вопросы по тегам