Тестирование объекта QT с использованием CXXTEST Framework и Valgrind

StackOverflow https://stackoverflow.com/questions/4268809

Вопрос

Можно ли использовать cxxunit. или любая другая структура тестирования единицы (исключая Qttestlib) Чтобы проверить виджеты QT?

Если да, то есть еще два вопроса:

  1. Как?
  2. Так как я бегаю модульные тесты, используя VALGRIND, может ли этот отчет о некоторых ошибках?
Это было полезно?

Решение

Да, должно быть возможно. Я не уверен в Cxxunit конкретно, но это теоретически возможно.

  1. Чтобы правильно проверить объекты QT, вам, вероятно, понадобится создать / уничтожить объект qapplation в ваших глобальных функциях установки и разрыва. Если вы не конкретно тестируете функциональность QApplication, вы должны создать только одну для всего запуска тестового приложения. Это позволит вам проверить части логики виджета, но нелегко внешний вид или интерфейс UI виджета. Кроме того, тестирование определенных предметов может полагаться на пробел петли события приложения, что было бы сложнее.
  2. Валгринд может сообщать о некоторых ошибках. Он также может сообщать об ошибках с кодом QT, в частности статические ассигнования, которые остаются на приложение, чтобы восстановить.

Другие советы

Если вы хотите проверить свой интерфейс, я предлагаю использовать инструмент тестирования пользовательского интерфейса, как Хлюпать. Отказ УСТАНОВКИ УДАЛЕНИЯ У меня больше подходит для проверки логики позади виджетов, а не сами виджеты. Если вы действительно хотите установить модифицировать виджеты QT, я не думаю, что есть лучшее решение, чем Qttestlib.

Валгринд: есть Valgrind плагин для приседа. Отказ Я не использовал этого самого себя. Другие модульные тесты могут быть, конечно, легко запускаться в Валгринд, хотя я не знаю ни о каком решениях, который полностью автоматизирует это. Нужно бы, чтобы по-настоящему подавить все предупреждения из-за пределов одного собственного кода, чтобы некоторые ошибки, например, в Libs, например, X11, не запускают тест устройства, чтобы провалиться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top