И 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
точка входа.