DocTest和Catch 2均未运行单元测试

时间:2019-05-19 14:07:24

标签: c++ unit-testing resharper doctest catch2

我正在使用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体系结构。

我们对此提供了任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您的wMinMain无法运行测试。有关如何提供正确的main入口点,请参见doctest docs