【问题标题】:Unit testing setup in Qt CreatorQt Creator 中的单元测试设置
【发布时间】:2011-03-13 15:39:42
【问题描述】:

我正在使用带有qmake 的Qt Creator 创建我的项目和我的测试项目(QTest-tests)。我现在有自己运行的测试项目,但我很难理解如何从我的正常项目中测试类。我可以将项目中的 .h 文件包含在测试用例中,但这当然还不够。

它会引发我的链接器错误,因为它没有代码或库来查找类的代码。有没有一种简单的方法来告诉 qmake 查找特定文件夹中的所有源文件以加载它们?或者,在无需将每个源文件也添加到测试项目或将您的应用程序编译到要包含的库中的情况下,设置此类测试项目的正确方法是什么?

【问题讨论】:

    标签: unit-testing qt qt-creator


    【解决方案1】:

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

    qmake 支持通配符,所以你可以有类似的东西

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

    在您的项目文件中。

    还要确保调整 MOC_DIRRCC_DIR 以指向源文件夹以外的其他位置。您不想在您的SOURCES 中包含生成的源文件。

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

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

    • 单元测试测试单个组件(通常位于源文件中)。我模拟了对系统其他部分的依赖。每个单元测试都是一个自己的Qt项目,只包含被测试的源文件+测试代码+模拟代码。

    • 集成测试整个测试组件,无需模拟代码。通常它是将应用程序引擎部分构建为库,然后链接到测试项目。

    【讨论】:

    • 谢谢!正是我需要的信息!
    • 模拟部分做得怎么样?您是否有任何工具可以首先生成骨架或手动生成所有内容?
    • @rasjani:我已经手动完成了,不过我猜半自动完成不会太难。
    • 你真的是指每个单元测试一个项目,其中一个单元测试等于java中的一个@Test-method?或者每组单元测试一个项目,通常是一个类?即使是后者对我来说似乎也很重......
    猜你喜欢
    • 2013-05-12
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多