我正在尝试使用 Catch 框架制作一个单元测试项目,但我面临着链接错误。
我已将项目设置如下:
- 创建本机单元测试项目
- 将 Catch 添加到包含目录
- 添加
#include <catch.hpp>
到 stdafx.h - 编写如下简单的源文件
单元测试.cpp:
#include "stdafx.h"
namespace Catch2_Test
{
TEST_CASE("Y U no work")
{
REQUIRE(1);
}
}
我正在尝试使用 Catch 框架制作一个单元测试项目,但我面临着链接错误。
我已将项目设置如下:
#include <catch.hpp>
到 stdafx.h单元测试.cpp:
#include "stdafx.h"
namespace Catch2_Test
{
TEST_CASE("Y U no work")
{
REQUIRE(1);
}
}
要将 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);
}
问题是我从master 分支克隆了 Catch2 ,而 VS 集成在Catch 的一个分支上工作。