【问题标题】:Both DocTest and Catch 2 not running unit testDocTest 和 Catch 2 都没有运行单元测试
【发布时间】:2019-10-06 02:16:21
【问题描述】:

我正在使用 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 的:

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++ 测试”下选择了“启用 Catch 支持”,并在“MsTest”下选择了“启用 MSTest 支持”。我为单元测试和所有项目配置设置都选择了 x64 架构。

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

【问题讨论】:

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


    【解决方案1】:

    您的wMinMain 没有运行测试。请参阅doctest docs,了解如何提供正确的main 入口点。

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      相关资源
      最近更新 更多