我正在使用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
之前,我想通过setup
来访问test_name = ...
中的此名称(如代码中所述),以便test_name
== "TestSomething.test_the_power"
。实际上,在
setup
中,我为每个测试分配了一些资源。最后,查看由各种单元测试创建的资源,我希望能够看到由哪个测试创建的资源。最好的办法是在创建资源时仅使用测试名称。 最佳答案
您也可以像这样使用Request Fixture来做到这一点:
def test_name1(request):
testname = request.node.name
assert testname == 'test_name1'