나는 Qt
초보자이며 Qt
을 기반으로 한 사용자 인터페이스 라이브러리를 개발 중입니다. 주 QApplication
을 setUp
에 시작하고 tearDown
에 닫으므로 테스트 사이에 누출되는 이벤트 나 기타 문제가 없습니다. 여기 내 setUp
/tearDown
방법은 이제 : `unittest` 프레임 워크에서`QApplication`을 멈추고 다시 시작하는 방법은 무엇입니까?
class _QtTest(unittest.TestCase):
def setUp(self):
"""Set up a QAppplication on each test case."""
try:
QApplication = QtGui.QApplication
except AttributeError:
QApplication = QtWidgets.QApplication
self.qt_app = QApplication.instance()
if self.qt_app is None:
self.qt_app = QApplication(sys.argv)
def tearDown(self):
"""Clear the QApplication's event queue."""
# After each test, empty the event queue.
# This should help to make sure that there aren't any event-based race
# conditions where a C/C++ object is deleted before a slot is called.
self.qt_app.sendPostedEvents()
self.qt_app.quit()
불행하게도 마지막
self.qt_app.quit()
모든 연속적인 테스트를 영구적으로
QApplication
를 종료 할 것으로 보인다.
setUp
방법으로 새
QApplication
을 다시 시작하는 방법이 있습니까?
당신은 [pytest] (https://docs.pytest.org/en/latest/)와 [pytest-qt] (https://pypi.python.org/pypi/pytest- Qt) 플러그인? 나는이 두 가지 중 어느 것도 사용하지 않았지만, 둘 다 성숙하고 유지 관리가 잘된 프로젝트 인 것으로 보인다. [문서] (https://pytest-qt.readthedocs.io/en/latest/)도 적당하다. – ekhumoro