可以将 C++ 单元测试集成到 Xcode 的 XCTest 中吗?
Posted
技术标签:
【中文标题】可以将 C++ 单元测试集成到 Xcode 的 XCTest 中吗?【英文标题】:could one integrate C++ unit testing into Xcode's XCTest? 【发布时间】:2015-03-17 23:20:11 【问题描述】:我有自己的小型跨平台 C++ 单元测试框架,其中单元测试如下所示:
#include "Test.h"
DEFINE_TEST(myTest)
AssertEqual(2+2, 4);
并且在 .cpp 文件中。
(似乎类似于Catch 的做法,我敢肯定)
我想将它与 Xcode 集成,因此我可以使用 Xcode 的 Run Tests 命令运行我的测试,并利用 other tools 这取决于以这种方式运行的单元测试。理想情况下,我希望我的每个测试用例都是 XCTest 测试用例(尽管我可以为每个测试手动设置它),并且我希望我的断言(AssertEqual)表现得像 XCTest 的(XCTAssert)。
这可能吗?如果是这样,我该怎么做?
(注意:不要切换到只使用 XCtest,因为我希望我的测试也能在 Windows 上运行)
【问题讨论】:
您能找到一种跨平台的好方法吗? 【参考方案1】:与 Xcode 集成基本上意味着确保:
这些测试中的每一个最终都作为测试用例类的测试方法。 每个失败的断言都会将-[XCTestCase recordFailure:withDescription:inFile:atLine:expected:]
发送到当前正在执行的测试用例类实例。
在第一次测试运行后,Xcode 将使用所有运行时发现的测试填充测试导航器,这些测试组织在测试用例类下。
您也许可以使用宏完成大部分工作,让预处理器在编译时构建您的测试用例类和方法。否则,在测试运行程序轮询运行时以发现所有 XCTestCase
子类及其测试方法之前,您需要在运行时检查并连接所有内容。
【讨论】:
以上是关于可以将 C++ 单元测试集成到 Xcode 的 XCTest 中吗?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用程序的 Xcode 单元测试中的链接问题与嵌入式 C++ 代码