问题标签 [qttest]

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 投票
0 回答
227 浏览

qt - 在测试函数以外的函数中使用 QTest 宏(QVERIFY、QCOMPARE 等)

通常,宏QVERIFYQCOMPARE等不应在测试功能之外使用。原因是,如果发生故障,他们会用return.

如果我想在一个函数中进行测试,我应该手动进行,如果其中一个失败则返回 false。然后用 调用函数QVERIFY。但是当我这样做时,我错过了宏的详细输出,比如发生错误的行。

所以我正在寻找一种在测试函数之外使用宏的方法。一种解决方案是创建我自己的宏,当底层函数中的宏调用失败时中断测试。这里的主要问题是检测测试何时失败。查看 Qt 的代码,如果失败,变量QTest::failed设置为true. 但我无权访问此变量。

有没有办法找出 QtTest 宏是否失败?

0 投票
2 回答
32 浏览

relative-path - bash 中是否有用于“..”的 QMake 模拟?

我正在使用 QtTest 框架编写单元测试。我有一个代表测试项目的.pro文件,我想在其中指定要使用关键字测试的源文件的相对路径。INCLUDEPATH源文件位于源文件夹中,在文件夹层次结构中比 .pro 文件高 2 级。因此,如果我要使用 bash 到达那里,我会使用cd ..then 。我试过了,但这似乎不起作用。我在 Qt 文档中也找不到任何相关信息。cd ..cd sourceINCLUDEPATH += $$PWD/../../source

我怎样才能从 qmake 实现我想要的行为?任何帮助都会很棒。

0 投票
1 回答
140 浏览

python - 当被测小部件必须可见才能工作时,PyQt5 下的 QtTest 失败

我已经开始使用 QtTest 为我的 PyQt5 小部件创建 UI 测试,但遇到了以下困难:

  • 为了加快速度,我的一些小部件只在可见时执行操作。由于似乎 QtTest 使用不可见的小部件运行,因此相应的测试失败。

  • 出于同样的原因,我无法测试使子小部件在某些条件下可见的程序逻辑。

有没有办法让小部件在测试期间可见?这是一种好的做法(GitHub 上的 egwrt CI 测试)吗? QtTest 是要走的路吗?

我曾尝试将 pytest 与pytest-qt一起使用,但没有成功,因为我找不到合适的介绍或教程,而且我知道"Test PyQt GUIs with QTest and unittest"

下面是一个 MWE,它由一个mwe_qt_widget.MyWidget带有组合框的小部件、一个按钮和一个由其他两个子小部件更新的标签组成:

此小部件已使用以下测试设置进行测试。test_visibility()test_button()失败,因为两者都要求被测小部件可见:

0 投票
0 回答
31 浏览

c++ - 使用 QT Test 自定义测试名称

我正在尝试从 QT Test 生成一个不错的 JUnit 测试报告,以便稍后将其可视化。正如文档所说,您可以像这样调用任何 QT Test 二进制文件来获取 XML 格式的测试报告:testbinary -junitxml. 这将通过控制台返回报告。

现在我们有一个看起来像这样的报告:

如您所见,默认情况下<testsuite><testcase>标签的名称分别是类和方法的名称。我的问题是:
有没有办法从 QT 代码中更改名称?或者我应该在生成文件后对其进行处理?

一个例子是将名称更改testMinMaxAvgPositionCheck that the position range is generated correctly.

0 投票
0 回答
22 浏览

cmake - How to set QT_QPA_PLATFORM for test

I have some Qt tests that pop up a window when run. Therefore i want to add possibility to disable their rendering.Can I set in cmake environment variable QT_QPA_PLATFORM to offscreeen only for test?