在 allure-pytest 中获取动态测试描述
Get dynamic test description in allure-pytest
在 pytest-allure 中有没有办法在我用
设置后获取当前测试描述
allure.dynamic.description("""blah blah""")
寻找类似的东西:
description = pytest.xxx or request.node.xxx ....
我正在尝试更好地解释我的需要。每个测试在关闭前调用一个函数,它需要知道 testdescription 的值。我不想将它保存在变量中并传递给函数。我会通过 allure 变量得到它。
@allure.title("MYTITLE")
def test_A1(self):
allure.dynamic.description("""MYDESC""")
...
myfunct()
def myfunct():
testdescription = ???
...
message: "Test done " + testdescription
smtpObj.sendmail(sender, receivers, message)
查看 allure_pytest
插件源,您可以从存储信息的插件管理器中获取正确的插件对象:
import allure
from allure_commons._core import plugin_manager
from allure_pytest.listener import AllureListener
@allure.title("MYTITLE")
def test_A1(request):
allure.dynamic.description("""MYDESC""")
myfunct()
def myfunct():
plugin = next(p for p in plugin_manager.get_plugins() if isinstance(p, AllureListener))
testdescription = plugin.allure_logger.get_test(None).description
...
但是,请注意 API 不是 public(而且它看起来并不打算成为 public),因此请注意 [= 实现中的变化12=] 很容易破坏 myfunct
.
在 pytest-allure 中有没有办法在我用
设置后获取当前测试描述allure.dynamic.description("""blah blah""")
寻找类似的东西:
description = pytest.xxx or request.node.xxx ....
我正在尝试更好地解释我的需要。每个测试在关闭前调用一个函数,它需要知道 testdescription 的值。我不想将它保存在变量中并传递给函数。我会通过 allure 变量得到它。
@allure.title("MYTITLE")
def test_A1(self):
allure.dynamic.description("""MYDESC""")
...
myfunct()
def myfunct():
testdescription = ???
...
message: "Test done " + testdescription
smtpObj.sendmail(sender, receivers, message)
查看 allure_pytest
插件源,您可以从存储信息的插件管理器中获取正确的插件对象:
import allure
from allure_commons._core import plugin_manager
from allure_pytest.listener import AllureListener
@allure.title("MYTITLE")
def test_A1(request):
allure.dynamic.description("""MYDESC""")
myfunct()
def myfunct():
plugin = next(p for p in plugin_manager.get_plugins() if isinstance(p, AllureListener))
testdescription = plugin.allure_logger.get_test(None).description
...
但是,请注意 API 不是 public(而且它看起来并不打算成为 public),因此请注意 [= 实现中的变化12=] 很容易破坏 myfunct
.