我正在使用py.test,想知道在运行每个测试之前调用的setup
方法中是否/如何能够检索当前执行的测试的名称。请考虑以下代码:
class TestSomething(object):
def setup(self):
test_name = ...
def teardown(self):
pass
def test_the_power(self):
assert "foo" != "bar"
def test_something_else(self):
assert True
在执行TestSomething.test_the_power
之前,我希望能够通过test_name = ...
访问setup
中的该名称,以便test_name
="TestSomething.test_the_power"
。
实际上,在setup
中,我为每个测试分配一些资源。最后,查看由各种单元测试创建的资源,我希望能够看到哪个是由哪个测试创建的。最好是在创建资源时使用测试名称。
setup
和teardown
方法似乎是支持为其他框架(例如nose)编写的测试的遗留方法。本地的pytest
方法被称为setup_method
以及teardown_method
,它们接收当前执行的测试方法作为参数。因此,我想要实现的,可以这样写:那么
py.test -s
的输出是:您还可以使用Request Fixture这样做:
您还可以为每个测试用例使用pytest设置的
PYTEST_CURRENT_TEST
环境变量。PYTEST_CURRENT_TEST environment variable
要获取测试名称:
相关问题 更多 >
编程相关推荐