Python 单元测试PyQt应用程序
我正在尝试测试我的PyQt应用程序。我需要在PyQt小部件中查看我的单元测试结果,但当我运行单元测试时,应用程序关闭 这是我的代码: 验证\测试\应用程序副本:Python 单元测试PyQt应用程序,python,unit-testing,python-3.x,pyqt5,python-unittest,Python,Unit Testing,Python 3.x,Pyqt5,Python Unittest,我正在尝试测试我的PyQt应用程序。我需要在PyQt小部件中查看我的单元测试结果,但当我运行单元测试时,应用程序关闭 这是我的代码: 验证\测试\应用程序副本: from PyQt5 import QtCore, QtWidgets from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest import sys import unittest def get_size(url): manager = QNetw
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_())
验证_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\u test”,exit=False)
您的意思是在PyQt应用程序上的QLabel
小部件上获取单元测试的结果吗?@iron首先启动我的应用程序,进行单元测试,并设置QLabel的文本,例如,测试通过或失败。p、 我试图将结果输出到文件中,然后读取它。但应用程序关闭了。(((您是否收到任何回溯错误消息?。如果是,请将其发布在此处。@IronFirst只是一个与单元测试类似的标准:…--------------------------------------------------------------------------------------在0.510s内运行了2个测试。)OK@ekhumoro…重复问题的链接在哪里?