使用 cxxtest 框架和 valgrind 测试 qt 对象
是否可以使用 cxxunit 或任何其他单元测试框架(不包括 QtTestLib) 来测试 qt 小部件?
如果是的话,那么还有两个问题:
- 如何?
- 由于我正在使用 valgrind 运行单元测试,这会报告一些错误吗?
Is it possible to use cxxunit or any other unit testing framework (excluding QtTestLib) to test qt widgets?
If yes, then there are two more questions :
- How?
- Since I am running unit tests using valgrind, can this report some errors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这应该是可能的。我具体不确定 cxxunit,但理论上是可能的。
Yes, it should be possible. I'm not sure about cxxunit specifically, but it is theoretically possible.
如果你想测试你的 UI,我建议使用 UI 测试工具,比如 Squish。我发现单元测试更适合测试小部件背后的逻辑,而不是小部件本身。如果您确实想对 Qt 小部件进行单元测试,我认为没有比 QtTestLib 更好的解决方案了。
Valgrind:有一个 Squish 的 valgrind 插件。不过我自己还没用过那个。其他单元测试当然可以轻松地在 valgrind 中运行,尽管我不知道有任何解决方案可以完全自动化此操作。人们必须确保真正抑制来自外部代码的所有警告,以便 x11 库中的某些错误不会触发单元测试失败。
If you want to test your UI, I suggest to use a UI testing tool like Squish. Unit tests I find more suited to test the logic behind the widgets, not the widgets itself. If you really want to unit-test your Qt widgets, I don't think there is a better solution than QtTestLib.
Valgrind: There is a valgrind plugin for Squish. I haven't used that one myself though. Other unit tests can of course easily be run in valgrind, although I don't know of any solution that fully automates this. One would have to make sure to really suppress all warnings from outside one owns code so that some error in e.g. x11 libs doesn't trigger the unit test to fail.