Qt Creator 单元测试项目

标签 qt unit-testing qt-creator qtestlib

在 Qt Creator 中,当我创建一个新的单元测试项目时,如果项目的完整路径包含空格,它将无法成功构建。

我已经将错误追踪到 qmake 生成的 makefile。生成文件在顶部附近包含一行,例如:

DEFINES = -DUNICODE -DWIN32 -DSRCDIR=\"C:/Users/Smith/Qt Projects/Unit_Tests/\" -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR=\"C:/Users/Smith/Qt Projects/Debug_Unit_Tests\"
SRCDIR 的值中的引号和 QT_TESTCASE_BUILDDIR用反斜杠转义。如果我从 Makefile.Debug 中删除反斜杠,那么项目将成功构建。

显然,我不想每次都手动删除反斜杠。我还想避免删除反斜杠的自定义构建步骤。因为 qmake 有很多选择,我希望可以在 .pro 中添加一些东西。将解决此问题的文件。

我试过类似 DEFINES -= QT_TESTCASE_BUILDDIR .但是这不起作用,因为 QT_TESTCASE_BUILDDIR尚未定义。 testlib显然后来添加了自己的定义。

我在用:
  • Visual Studio 2010 SP 1
  • Qt 5.0.2
  • Qt Creator 2.7.0
  • 视窗 7

  • 摆脱反斜杠的最简单方法是什么?

    编辑:这也会发生在 OSX。

    最佳答案

    testlib 添加的定义在 testlib_defines.prf这是在:

    C:\Qt\Qt5.0.2\5.0.2\msvc2010\mkspecs\features
    

    改变...
    DEFINES += QT_TESTCASE_BUILDDIR=\\\"$$OUT_PWD\\\"
    

    ...到...
    DEFINES += QT_TESTCASE_BUILDDIR=\"$$OUT_PWD\"
    

    另一部分很容易。 SRCDIR 的额外反斜杠来自 .pro文件本身。改变...
    DEFINES += SRCDIR=\\\"$$PWD/\\\"
    

    ...到...
    DEFINES += SRCDIR=\"$$PWD/\"
    

    每次安装新版本的 Qt 时,都必须编辑 .prf文件,但这比每次 qmake 运行时都必须编辑 makefile 更好。

    关于Qt Creator 单元测试项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16611108/

    相关文章:

    java - gradle:如何从根项目运行子项目的 JUnit 测试?

    .net - 具有 WCF 调用的单元测试服务 (MSUnit + Moq)

    makefile - 当我使用使用 Clang 编译的构建工具包时,QMake 添加了额外的 "-std=gnu++11",它覆盖了我的 .pro 标志添加 "-std=c++17"

    C++ Qt 框架 : qmake exits with error code 2, 找不到 project.pro 文件,但它在那里

    windows - 为什么 QtCreator/MSVC 将 64 位系统 DLL 链接到我的 32 位应用程序?

    linux - system() 调用的 WiringPi gpio 必须使用另一个进程?

    Qt Creator : how to embed custom manifest in . exe

    C中的跨平台单元测试

    c++ - 如何围绕 winApi 集成 C++ 类和对象?

    c++ - 我如何在 Qt 中使用 itemFromIndex