0

我正在尝试使用 Catch 框架制作一个单元测试项目,但我面临着链接错误。

我已将项目设置如下:

  1. 创建本机单元测试项目
  2. 将 Catch 添加到包含目录
  3. 添加#include <catch.hpp>到 stdafx.h
  4. 编写如下简单的源文件

单元测试.cpp:

#include "stdafx.h"
namespace Catch2_Test
{
  TEST_CASE("Y U no work")
  {
    REQUIRE(1);
  }
}
4

2 回答 2

2

要将 Catch 集成到 Visual Studio中,请参阅由 Malcolm Noyes
撰写的 ACCU 文章将 Catch 测试框架集成到 Visual Studio 中

要在预编译的头文件中使用 Catch2
请参阅Catch2 问题 1061,其中horenmar给出了一个示例。这些更改已作为 v2.1.0 的一部分发布

总之,给出的解决方案是:

// stdafx.h
#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>

#define CATCH_CONFIG_ALL_PARTS
#include "catch.hpp"

// PCH-test.cpp:
#include "stdafx.h"

#undef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
#define CATCH_CONFIG_IMPL_ONLY
#define CATCH_CONFIG_MAIN
#include "catch.hpp"

// tests1.cpp:
#include "stdafx.h"

TEST_CASE("FooBarBaz") {
    REQUIRE(1 == 2);
}
于 2017-11-16T08:56:01.283 回答
1

问题是我从master 分支克隆了 Catch2 ,而 VS 集成在Catch 的一个分支上工作。

于 2017-11-06T21:46:12.123 回答