0

我正在使用 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 架构。

对此的任何帮助表示赞赏。谢谢你。

4

1 回答 1

1

wMinMain没有运行测试。有关如何提供正确入口点的信息,请参阅doctest 文档。main

于 2019-05-20T15:42:56.290 回答