Qt Creator 中的单元测试设置

14
我正在使用qmake的Qt Creator来创建我的项目和测试项目(QTest-tests)。现在我的测试项目可以单独运行,但我很难理解如何测试我的正常项目中的类。我可以在测试用例中包含我的项目中的.h文件,但这当然是不够的。由于没有代码或库来查找类的代码,它会引发链接器错误。有没有简单的方法告诉qmake查找特定文件夹中的所有源文件来加载它们?或者设置这样一个测试项目的正确方式是什么,而无需将每个源文件也添加到测试项目中或将应用程序编译为库以进行包含?
1个回答

4

有没有一种简单的方法告诉QMake查找特定文件夹中的所有源文件以加载它们?

qmake支持通配符,因此您可以使用以下内容:

SOURCES += *.cpp
HEADERS += *.h

在您的项目文件中,请确保调整MOC_DIRRCC_DIR,使其指向源文件夹之外的其他位置。您不希望在SOURCES中包含生成的源文件。

或者,有没有一种正确的方法可以设置这样一个测试项目,而无需将每个源文件也添加到测试项目中或将应用程序编译为库以包含它

我更喜欢将自动化测试分为两类:

  • 单元测试测试单个组件(通常驻留在源文件中)。我模拟了对系统其他部分的依赖关系。每个单元测试都是一个独立的Qt项目,仅包括被测试的源文件+测试代码+模拟代码。

  • 集成测试测试组件作为整体而不使用模拟代码。通常它是作为库构建的应用引擎部分,然后链接到测试项目中。


谢谢!这正是我所需要的信息! - Matthias
你是如何进行模拟部分的?你是否有任何工具首先生成框架,或者都是手动完成的? - rasjani
@rasjani:我已经手动完成了,虽然我猜半自动化完成也不会太难。 - laalto
1
你真的是指每个单元测试一个项目,其中一个单元测试等同于Java中的一个@Test方法吗?还是每组单元测试一个项目,通常是一个类?即使后者对我来说似乎也很繁重... - Sebastian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接