【发布时间】:2015-12-02 14:29:32
【问题描述】:
我正在尝试测试我的 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 中查看测试结果。真的可以实施吗?
【问题讨论】:
-
您的意思是在您的 PyQt 应用程序上的
QLabel小部件上获取unit-testing的结果吗? -
@IronFirst 我的应用程序启动,进行单元测试,并设置 QLabel 的文本,结果,例如通过或失败测试。 p.s.我试图将结果输出到文件然后读取它。但应用程序关闭。 (((
-
您是否收到任何回溯错误消息?..如果有,请在此处发布..
-
@IronFirst 只是单元测试中的标准:.. -------------------------------- --------------------------------------- 在 0.510 秒内运行 2 次测试 OK
-
@ekhumoro ...重复问题的链接在哪里?
标签: python unit-testing python-3.x pyqt5 python-unittest