我有一个带有按钮,标签等的主窗口。
我有一个带有测试功能的示例脚本。
我有一个pytest fixture来获取当前执行的测试函数名称。
我想将当前测试功能名称打印到主窗口中的标签。
这是获取测试功能名称的代码:
...
request.node.name
这是我在pyside中设置标签的代码
label_curr_test_name.setText(...)
我的所有代码都是这样的:
testcase.py
def test_1(update_test_status):
assert True
def test_2(update_test_status):
assert True
conftest.py
import pytest
from testmain import MainWindow # my window with the label created with pyside
@pytest.fixture()
def update_test_status(request):
# implemented as singleton
main = MainWindow()
main.label_curr_test_name.setText(request.node.name)
这根本没有设置标签。还有一件事要知道:我有一个按钮" Start"这样点击时会启动pytest:
testmain.py
full_path = file_path + directory + file_name + '.py'
pytest.main(['-x', full_path])
在该命令之后,对pyside设置标签的任何调用都会失败,而没有pytest运行它会起作用。
任何人都可以提供帮助?问题是什么或如何解决?
答案 0 :(得分:0)
解决了这个问题。问题是pyside在1个主线程中运行。在那一刻运行的任何其他进程都将冻结pyside。所以解决方案是在一个线程中分离pytest的调用。