首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单个标头版本中为Catch2创建自定义报告

在单个标头版本中为Catch2创建自定义报告
EN

Stack Overflow用户
提问于 2022-10-21 17:09:11
回答 1查看 33关注 0票数 1

Catch2文档中已经有关于如何创建自定义记者的一节。问题是,这似乎只适用于非单一头部版本的Catch2。

使用单个标题版本的Catch2,记者的两个基类( Catch::StreamingReporterBase和Catch::CumulativeReporterBase)是不可访问的。

它们是不可访问的,因为它们位于不被预编译器包含的标题的一部分中(顺便说一句,我不明白默认的记者是如何工作的,因为他们也在头的未包含的段中)。

有人知道如何用Catch2的单头版本创建自定义记者吗?

编辑:我正在使用Catch的第2版。报告基定义位于一个被#ifdef OBJC块禁用的块中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-23 16:56:35

这取决于您正在使用的库的版本。版本2.x基于单个标头catch.hpp,并有许多额外的来配置该标头中包含的内容。特别是,你需要

代码语言:javascript
复制
#define CATCH_CONFIG_EXTERNAL_INTERFACES
#include "catch.hpp"

来访问记者的定义。

对于3.x版本,这种情况已经改变,有两个选项:

  • 采用新的库架构,这意味着您将目标链接到Catch2,并包含适当的报告头,例如#include Catch2
  • 使用catch_amalgamated.hpp/cpp文件将库编译为一个翻译单元。应该不再需要额外的配置来使报告类可用。

有关迁移到版本3的更多信息,请参见本文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74157038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档