我正在使用 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 Element CatchTest Test 在运行完成后仍处于待处理状态。”。以下所有代码均适用于 Catch2:
引擎.h
#pragma once
#include "pch.h";
#include <SDKDDKVer.h>;
int wWinMain( dv* ghInst, dv* ghPrevInst, dv* gupCmdLine, dsd gsdCmdShowFlag);
int test();
引擎.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++ 测试”下选择了“启用 Catch 支持”,并在“MsTest”下选择了“启用 MSTest 支持”。我为单元测试和所有项目配置设置都选择了 x64 架构。
对此的任何帮助表示赞赏。谢谢你。