问题标签 [qtestlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1196 浏览

c++ - 使用 QTestLib 编写单元测试

这是我进入单元测试世界的第一步,所以请耐心等待。我正在编写一个 Qt 4.8.1 C++ 程序,作为测试框架,我正在使用集成的 QTestLib。我应该测试一个从基类继承的类,并加载某个 XML 文件以稍后使用一个函数读取和解析它,该函数将返回一个 C++ 类对象,该对象具有我可以通过 set/get 函数检索和设置的 xml 值。构造函数中的类实例化了一个 QFile 对象,在 readXml 函数中我使用它与 QXmlStreamReader 一起解析文件。使用单元测试测试所有此类的最佳方法是什么?我看不到如何绕过文件读取操作来注入自己的代表文件内容的字符串。或者我应该使用不同的临时 XML 文件作为测试内容吗?

0 投票
1 回答
1951 浏览

c++ - 使用 QTestLib 进行单元测试

我正在尝试使用 QTestLib 对我的 Qt 应用程序进行单元测试。我看到新的 Visual Studio 2012 有一个内置的 C++ 测试框架并通过谷歌搜索我看到这个页面讨论了测试本机项目的不同方法。我将有两个不同的项目,一个用于正常程序,一个用于测试。实际上,我的应用程序不是 DLL,而是一个简单的 C++ exe。用另一个项目来测试它以链接到 .obj 文件或库的最佳方法是什么?我不会从源代码中导出任何内容,因为我的不是 DLL

0 投票
4 回答
13107 浏览

qt - 如何在 QTestLib 对 Qt 应用程序进行单元测试时构建项目

我得到了我的 Qt 项目,并且正在使用 Qt Creator。我想对我所有的代码进行单元测试。
但是我对 QTestLib 框架还是很陌生,但每个人都推荐它来测试基于 Qt 的源代码。现在我有点困惑如何用应用程序构建测试项目。

  1. 我可以将所有源代码和测试代码放在同一个项目中吗?如果是这样,我该如何管理它们?我没有找到任何让我在一个项目中启动应用程序或开始测试的选项。
  2. 如果我把app源码和测试代码放在不同的项目中,测试项目会引用app项目,不太方便。
  3. 对于需要测试的类的批次,我如何管理测试代码?

在这种情况下,你们如何管理测试代码?谢谢。

0 投票
1 回答
166 浏览

qt - qmake 不正确的目标生成

我有一个看起来像这样的 .pro 文件:

但是,它生成的 makefile 具有以下目标:

因此 gcc 生成了一个库。但是,我希望按照 .pro 文件中的指定生成可执行文件。

我不明白为什么会发生这种尴尬的事情?任何指针表示赞赏。

谢谢

PS 这是使用 qtestlib 框架进行单元测试的 .pro 文件。

0 投票
1 回答
2318 浏览

qt - 如何从 QTest 单元测试中编辑 QTableView 单元格?

我正在使用QTestLib 框架为 QTableView 中的自定义验证器编写单元测试。最基本的测试用例之一可以这样描述:

双击第三列第四行的表格单元格,并将数字“5”附加到其内容中。

仅仅改变模型或任何东西中的值是不够的,测试用例应该像这样执行它:

  1. 双击表格单元格将其设置为编辑模式
  2. 按[结束]键。
  3. 按 [5] 键。

注意:这个问题有一个关于如何从代码中将表格单元格设置为编辑模式的答案,但是单元测试应尽量坚持人类用户的可能性,即鼠标/键盘操作。

我发现可以使用QTableView::columnViewportPosition( int )QTableView::rowViewportPosition( int )检索单元格的 X/Y 位置。但是,使用QTest::mouseDClick(...)在指定位置双击既不会选择单元格,也不会将其设置为编辑模式:

如何仅使用鼠标/键盘操作来实现我上面描述的测试用例?

PS:我在 Windows XP 32 位和 Qt 4.6.1 下尝试这个

0 投票
1 回答
5872 浏览

qt - 使用 Jenkins xUnit 插件显示 QTestlib 的结果

我正在尝试将 Jenkins xUnit 插件用于我的 Qt 单元测试项目,但我无法使其工作......

这是我到目前为止所做的:

首先,我使用 qmakebuilder 插件构建我的单元测试项目(向 qmakebuilder 插件提供 .pro),然后我添加一个Execute Shell构建部分,首先rm -f是 testResult xml 文件,然后运行测试带有标志的二进制-xunitxml文件让它为我生成 xml 文件我命名 xml 文件testResult.xml,换句话说:

最后在 Post Build Action 中,我选择Publish xUnit test result并将模式指定为*.xml.

但是,构建作业会失败,这是我在使用 Jenkins 构建作业时得到的输出:

如您所见,将我的测试结果 xml 文件转换为 xUnit 插件可以读取的文件时出现问题。我的 testResult.xml 文件如下所示:

但是TEST--735044756.xml是一个单行 xml 文件:<?xml version="1.0" encoding="UTF-8"?>

任何人都知道我在哪里做错了什么?生成输出xml文件应该有问题。

另一方面,我在系统日志Jenkins菜单中添加了日志thingi,但这似乎不是这个问题的原因......至少IMO

0 投票
1 回答
1348 浏览

qt - 使用 QTest::mousePress 选择 QGraphicsItem

我想用 qgraphicsitem 做一些单元测试。下面是测试 qgraphicsitem 的简单代码。

当我运行代码时,测试通过了。但我没有看到围绕 qgraphicsitem 的选择矩形。问题是什么?

下面是完整的代码。

0 投票
1 回答
2051 浏览

qt - QCompare 的未定义符号

使用 QTestLib 构建测试时,我收到一个qCompare函数的“未定义符号”错误:

0 投票
1 回答
1000 浏览

c++ - QFETCH 的“没有名为 'qt_metatype_id' 的成员”

我将此行添加到我的 QTestLib 测试类中:

尝试编译测试类时,出现此错误:

0 投票
2 回答
5683 浏览

qt - 如何使用 QTest 验证是否引发了异常?

我在 QT C++ 世界中陈述。我正在使用 QTest 类进行 TDD。我想验证在某些情况下,我的测试类是否引发了异常。使用谷歌测试,我会使用类似的东西:

QTest 中是否存在类似此功能的功能?至少有一种方法可以做到吗?

谢谢!