问题标签 [qtest]

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 回答
53 浏览

curl - 我已经使用 Qtest API Bearer Key 编写了用于身份验证的 curl 语句,但它不起作用,如果语法不正确,请任何人纠正我

我正在尝试将 Qtest 与 GitLab 集成,我正在尝试从 GitLab 运行 Qtest 测试用例。在 GitLab yaml 文件中,我使用 Qtest API Bearer Key 编写了用于身份验证的 curl 语句,其中我的管道成功,但我在 Qtest 中看不到任何运行。任何人都可以通过让我知道我是否在 sytax 或任何其他方式解决此问题上出错来帮助我。

语法:- | curl https://qtest.t-mobile.com/ -H "Accept: application/json" -H "Authorization: Bearer {dbxxxxx-xx-xx-xxx-xxx6b0}" - | curl -d'{“QTEST_API_KEY”:“dbxxxxx-xx-xx-xxx-xxx6b0”,“QTEST_PATH”:“https://qtest.t-mobile.com”,“QTEST_PROJECT_ID”:18,“QTEST_RUN_ID”:[ TR-24764],“QTEST_TEST_CASE_ID”:[TC-49358],“QTEST_RUN_CONTAINER_ID”:[TS-677]}'-H“内容类型:应用程序/json”-X POST'https://qtest.t-mobile .com/p/18/portal/project#tab=testexecution' -o Results.xml

0 投票
0 回答
23 浏览

azure - 是否有一种简单的方法或插件可以将测试计划/测试用例从 QTest 导入 Azure Devops?

我只是想知道 ADO 中是​​否有一个插件/工具可以轻松地将测试用例/测试计划从 QTest 导入到 ADO。

我们正在寻找不同的选择来摆脱 QTest。我们的一个选择是探索 ADO,看看它是否是我们的最佳工具。第一步是确定我们是否可以将 QTest 中的所有测试用例/计划存储库迁移到 ADO。我查看了所有可用的文档以使用 csv 和 excel 导入测试用例。但是它们都需要大量的手动工作,而且这似乎是一项繁琐的任务,因为我们在 QTest 中有超过 10000 个测试用例。有关更多说明,请参见下文。请建议是否有更好的工具可以在 QTest 和 ADO 之间映射字段以实现更顺畅的导入。

0 投票
2 回答
110 浏览

c++ - 点击Qtest中几个QMessageBox的按钮

我正在为我的 GUI 应用程序创建一个测试。在测试的某个时刻,我想单击一个按钮,该按钮要求用户确认,然后确认我必须删除的每个文件。所以,在测试中,按下我正在做的那个按钮:

但是现在,首先QMessageBox我可以通过以下方式单击“是”:

从这里开始,我必须要求确认我要删除的每个文件,但我无法执行任何其他操作,直到我自己用鼠标单击或使用我试图找到的任何解决方案。QMessageBox我使用 qDebug 观察到,在单击所有这些(可能是一个或多个)之前,它不会进一步执行 mouseClick 功能。

所有这些QMessageBox都是应用程序上的局部变量,没有什么是静态的。

0 投票
1 回答
86 浏览

c++ - 高度具体的 cmake + qtCreator 用例和单元测试的问题

我对 CMake 的困扰不断加重 D:

我的想法是创建我的项目,这样当我构建它时,它会运行单元测试,如果单元测试失败,它会自行清理。否则,如果它们成功,则构建将可运行的可执行文件吐到 run/ 目录中。

我的项目目录包含子目录源、标头、构建、运行和 tst/ut,到目前为止,我在项目根目录以及源和标头目录内部都有 cmakelists

项目根目录下的 CMakeLists.txt

cmakelists 在来源/

和标题

使用这些 CMake 列表文件,QtCreator 无法看到顶级 CMake 列表文件之外的任何内容。它不承认项目目录中的子目录、其他两个 cmakeLists.txt 文件以及源目录中非常存在的 main.cpp 的存在。

我尝试使用 add_subdirectory 命令,这似乎有所帮助,因为它使所有子目录都显示出来。但是,我很快意识到 QtCreator 似乎将每个子目录都视为自己的项目,并且尝试将文件添加到这些新奇的“项目”中会导致简单的“无法将一个或多个文件添加到项目 foo”消息。

我知道 CMake 列表文件的要点是每个项目有几个,每个项目管理自己的较大项目的子部分,并且顶部的 CMake 列表文件将它们收集在一起。在我将我的 CMake 文件作为项目根目录的一个大文件之前,我已经明白这不好。我也明白像我一样划分标题和来源并不是最常见的做法,但我希望你能原谅我并帮助我让这件事正常工作。

所以,我的实际问题是,我该怎么做?我目前在顶级 cmakelists 文件中做错了什么导致 qtCreator 在项目中找不到文件?如何编写 CMake 列表以便它允许我使用 QTest 框架,甚至可以从 QtCreator 的项目向导构建骨架(因为目前将自动测试项目添加为子项目的选项是灰色的)?

任何见解都值得赞赏,如果您愿意,请随时详细了解 CMake。这是我觉得我一直错过的软件开发的一个重要部分。

0 投票
2 回答
86 浏览

qt - 除了像 GTest 实现这样的可执行文件之外,在 CTest 中注册 QTest 上的测试

我有一个可执行文件,其中包含用QTest编写的多个测试。
可执行文件正在使用 注册add_tests(NAME test_name COMMAND test_executable)。显然,测试将在CTest中作为一个处理,因此如果数百个测试中的一个失败,将很难找到问题。添加带有测试的新可执行文件时情况会更糟。

是否可以像 GTest 实现一样单独注册测试?QTest 测试是否有GTEST_ADD_TESTSGTEST_DISCOVER_TESTS CMake 函数的替代方法?

0 投票
0 回答
31 浏览

qt - 测试时如何在 QDialog 中实现鼠标点击?

这就是 Qt 中的自动化测试。

我有一个继承类的表QAbstractItemView,我是从QDialog对话框中得到的:

我有一点要点击,证明是正确的,QPoint clickPosition{x,y};. 但是,点击不起作用:

任何建议如何使它工作?

0 投票
1 回答
53 浏览

qt - Qt的QTest不会通过单击选择下拉列表中的项目

有两个下拉菜单。我正在尝试单击 QComboBox 下拉列表中的项目。

为此,我创建了一个为两个下拉菜单启动的函数,以下是摘录:

现在流程看起来像这样:

  • 显示第一个下拉列表,
  • 该项目突出显示 (mouseClick) 作为选择,但不是真正选择,未选择
  • UI 测试转到第二列,第一列显示列表中的第一个元素(即最上面的元素),尽管突出显示了什么;
  • 第二个下拉列表中的一个项目被选中/选择

所以,第二个列表似乎可以使用这个函数,第一个没有。我需要选择这些项目,而不仅仅是突出显示。

我在Ubuntu 21.04上运行。似乎在Windows 10上运行良好。在 Mac 上似乎失败了。任何建议如何使它工作?

什么有效: two clicks + Enter,但这会在 MacOs 上崩溃。所以这不是一个真正的解决方案。此外,它会破坏dropDownList对象,如果 make 有间隔,将导致崩溃。

还有什么不起作用: key down N次。

有什么建议么?

0 投票
0 回答
19 浏览

pyqt - 使用 Qtest 模拟保存到菜单栏

我正在尝试使用 Qtest 模拟保存功能(工具保存)但找不到任何指针

在此处输入图像描述

0 投票
0 回答
45 浏览

c++ - 当头文件包含显式路径时如何测试 C++ 类?

我的课程看起来像这样:

标题(.h):

定义 (.cpp)

现在我想要一个测试来检查是否doStuff()做正确的事情。

所以我写了我自己的 mock DatabaseX。但是我有一个问题,我自己的模拟数据库位于测试目录中,它在生产代码中没有位置,更糟糕的DatabaseX是,从未编写为被继承和重载。它是一个具体的类,与接口完全不同。

所以我的问题是,我如何编写一个测试,所有这些硬编码的包含路径无处不在?我是否例如:

  1. 创建另一个与包含路径匹配的重复文件结构,并将我的模拟DatabaseX放在这个重复的文件结构中?
  2. 在编译器通过某种间接魔法或其他方式访问它之前,以某种方式重写每个 cpp 文件?
  3. 添加宏来吃掉路径?
  4. 在编译我的测试之前编写一个 python/perl/bash 脚本来临时删除包含路径?
  5. 只需包含所有内容,接受 的依赖项DatabaseX,然后编译真实的东西,以及它的所有依赖项,然后在链接时替换?
  6. 接受失败;不要写任何测试,把我的头埋在沙子里。
  7. 或者 ... ?

我应该说有超过一百万行代码,因此更改源代码不是一种选择。有没有一种非常简单的方法可以通过一个简单的编译器选项或其他方式来克服这个噩梦?

(也许它不相关,但我正在使用 Qt 的 QTest 和 QtCreator。也许有一些神奇的开关可以让所有这些可怕的路径消失!)。

我正在使用 GCC 4.8.5

0 投票
1 回答
77 浏览

qt - 超出最大警告数量。使用 -maxwarnings 覆盖

我正在运行基于 QTest 的大型单元测试,在测试过程中,它因错误而停止:

QSYSTEM: ClassXyzTest::xyzTest() Maximum amount of warnings exceeded. Use -maxwarnings to override.

我在代码中进行了一些调试,以获得有关操作进度等的更多信息,但在编译期间我没有看到警告。

我尝试在Project -> Command line arguments参数中设置-maxwarnings 0但没有成功。0 值应该是无限的 -更多细节