c++ - 可以将 C++ 单元测试集成到 Xcode 的 XCTest 中吗?

标签 c++ xcode unit-testing xctest

我有自己的小型跨平台 C++ 单元测试框架,其中的单元测试如下所示:

#include "Test.h"

DEFINE_TEST(myTest) {
    AssertEqual(2+2, 4);
}

并且在 .cpp 文件中。

(看起来类似于 Catch 的方式,我敢肯定还有其他方式)

我想将它与 Xcode 集成,这样我就可以使用 Xcode 的运行测试命令运行我的测试并利用 other tools这取决于以这种方式运行的单元测试。理想情况下,我希望我的每个测试用例都是 XCTest 测试用例(尽管我可以为每个测试手动设置它)并且我希望我的断言 (AssertEqual) 表现得像 XCTest 的 (XCTAssert)。

这可能吗?如果可以,我该怎么做?

(注意:不要切换到仅使用 XCtest,因为我希望我的测试也能在 Windows 上运行)

最佳答案

与 Xcode 集成基本上意味着确保:

  • 这些测试中的每一个最终都会成为测试用例类的测试方法。
  • 每个失败的断言都会将 -[XCTestCase recordFailure:withDescription:inFile:atLine:expected:] 发送到当前正在执行的测试用例类实例。

然后,在第一次测试运行后,Xcode 将使用所有运行时发现的测试填充测试导航器,这些测试组织在它们的测试用例类下。

您可以使用宏来完成大部分工作,让预处理器在编译时构建您的测试用例类和方法。否则,在测试运行器轮询运行时以发现所有 XCTestCase 子类及其测试方法之前,您需要在运行时检查并连接所有内容。

关于c++ - 可以将 C++ 单元测试集成到 Xcode 的 XCTest 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28033334/

相关文章:

postgresql - 使用 sequelize.js 对 sails.js 进行单元测试

python - 用 Python 编写单元测试 : How do I start?

c++ 使用 switch/case 解析 protobuf 消息(减少重复代码)

c++ - 如何将包含 64 位纪元时间的字符串转换为人类可读格式?

c++未处理的异常 - 如何调试

iOS - 在 LaunchScreen 后设置第一个屏幕

swift - UIProgressView 在 iOS 13 上没有动画进度

c++ - 变换从三焦点张量计算的投影矩阵以估计 3D 点

ios - 尝试在 swift 项目中使用 cocoa pod 安装 Purelayout

java - 为什么我的 JUnit 测试用例在作为测试套件和单独的 Junit 文件运行时表现出不同的输出