我正在使用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'

10-07 19:00
查看更多