我正在使用Visual Studio 2019(v。16.0.4)和Resharper(v。2019.1.1)启动一个新的win32 C ++项目,并且无法使用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选项中,我在“ C ++ Tests”下选择了“ Enable Catch support”,在“ MsTest”下也选择了“ Enable MSTest support”。我为单元测试和所有项目配置设置都选择了x64体系结构。
我们对此提供了任何帮助。谢谢。