我正在使用node.add_marker向节点添加标记,有没有办法从节点获取标记值,这样我就可以确保无论我设置什么,实际上都是开始设置。
当我尝试访问节点时,它只是给我一个节点指向的函数的引用,我想要的是打印我添加到节点的标记。
(Pdb++) node.add_marker(pytest.mark.mymarker(myoption='yes'))
(Pdb++) node
<Function 'test_1'>
有人可以帮我找出实现这个目标的正确方法吗?
答案 0 :(得分:0)
我相信您可以使用标记的字符串名称调用get_marker()
方法,因此在您的示例中,我会尝试node.get_marker('mymarker')
。
通常,由于您可以访问包含要检查的某些对象的python shell,因此可以使用dir()
函数列出对象的属性,例如: dir(node)
查看它拥有的属性。我使用的另一个技巧是查看node.__dict__
,因为许多对象使用该内部属性。
另请注意,“node”变量的类型为Function
,这是pytest执行魔术的类之一。阅读the source code是另一种弄清楚你可以用这个对象做什么的方法。