gpt4 book ai didi

python - 对 PyQt 应用程序进行单元测试

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:27 24 4
gpt4 key购买 nike

我正在尝试测试我的 PyQt 应用程序。我需要在 PyQt 小部件中查看单元测试的结果,但是当我运行单元测试时,应用程序将关闭。

这是我的代码:validation_test_app.py:

from PyQt5 import QtCore, QtWidgets
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
import sys
import unittest

def get_size(url):
manager = QNetworkAccessManager()
response = manager.get(QNetworkRequest(QtCore.QUrl(r"https://" + url)))
event = QtCore.QEventLoop()
response.finished.connect(event.quit)
event.exec()
html = response.readAll()
size = html.size()
return size

class MainWindow(QtWidgets.QWidget):
def __init__(self, parent = None):
super(MainWindow, self).__init__()

self.layout = QtWidgets.QVBoxLayout()
self.label = QtWidgets.QLabel("Checking tests...")

self.btn = QtWidgets.QPushButton("push")
self.btn.clicked.connect(self.btn_clicked)

self.layout.addWidget(self.label, alignment=QtCore.Qt.AlignCenter)
self.layout.addWidget(self.btn)
self.setLayout(self.layout)

def btn_clicked(self):
unittest.main(module="validation_test")

if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)

main_window = MainWindow()
main_window.show()

sys.exit(app.exec_())

validation_test.py:

import unittest
from validation_test_app import get_size

class TestUrls(unittest.TestCase):

def test_1(self):
size = get_size("apps4all.ru")
self.assertEqual(size, 0)

def test_2(self):
size = get_size("google.com")
self.assertNotEqual(size, 0)

例如,我想查看 QLabel 中的测试结果。真的可以实现吗?

最佳答案

这是一个很晚的回复,但由于我遇到了同样的问题,我想我应该发布。我认为解决方案是将 exit=False 添加到主调用中。

unittest.main(module="validation_test", exit=False)

关于python - 对 PyQt 应用程序进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com