python - 跟踪和测试 GUI 应用程序中的功能 (Python + Gtk3)

标签 python unit-testing testing gtk3

<分区>

我正在编写我的第一个大型 GUI 应用程序,它具有数百个功能和预期行为,我需要在进行更改和添加功能时跟踪和测试这些。

这是如何完成的,使用什么工具,特别是如何为 Python 和 GTK+3 完成?我不是软件工程师,所以我什至不知道术语。我猜这是关于单元测试(我不熟悉),但这可能只是故事的一部分。

最佳答案

测试 GUI 桌面应用程序通常一点也不有趣。

最好使您的代码模块化,将其分成几部分,在应用程序的各个部分之间划出严格的“界限”。然后,分别为它的每个部分编写测试。这是unittest的地方标准库中的框架会有所帮助。

如果应用程序是按照某种传统模式编写的,例如 MVC - 测试什么以及如何测试对您来说会更清楚。

逐个模块、逐个函数地进行测试coverage并在每一步都查看覆盖率报告——以高覆盖率为目标。这实际上并不意味着您没有任何错误,但至少,这意味着您的大部分代码都已执行。 Mock python 模块将有助于测试不同的、难以重现的情况。

另见:Writing unit tests in Python: How do I start?

此外,您可能想要测试您的部件如何相互作用和协同工作。在这里您可能需要一些端到端的 UI 测试。作为一个选项,看看 sikuli项目 - 它实际上与框架和 UI 无关,因为它基于屏幕截图/图像。

另见:

希望对您有所帮助。

关于python - 跟踪和测试 GUI 应用程序中的功能 (Python + Gtk3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822000/

相关文章:

python - ttk OptionMenu 不适合其边界框

python - 安装python包时pip ReadTimeoutError

java - 无法在 Spring 3.2.8 和 junit 4.4 中 Autowiring 现场执行 Junit 测试

javascript - 如何覆盖(或覆盖?)内置的 Javascript 函数

ios - iPhone 应用程序自动化测试

python - 在 Mac OS X Yosemite 上安装 pymssql 时出错

python/numpy 对掩码数组(和/或选择性排名)进行二维内核排名过滤的最快方法

javascript - 如何监视原生 JavaScript 函数?比如.find()?

forms - capybara 选择方法无法找到单选按钮

android - 有没有办法在 Android Eclipse 中测试权限?