我试图在类skipif装饰器中使用pytest夹具(范围=模块),但我收到一个错误,说夹具未定义。这可能吗?
conftest.py有一个带有名为“目标”的模块范围的夹具,它返回一个货币目标对象。货币目标对象有一个函数isORDSupport。test_mytest.py有一个类Test_MyTestClass,其中包含十几个测试函数。我想跳过Test_MyTestClass中的所有测试,如果夹具target.is命令支持,所以我用skipif装饰Test_MyTestClass,比如:
@pytest.mark.skipif(not target.isCommandSupprted('commandA), reason=command not supported')
class Test_MyTestClass:
...
我收到以下错误:NameError:未定义名称“target”
如果我尝试:
@pytest.mark.skipif(not pytest.config.getvalue('tgt').isCommandSupprted('commandA), reason=command not supported')
class Test_MyTestClass:
...
我收到以下错误:AttributeError:“function”对象没有属性“IsCommandSupported”
您可以从conftest导入目标,如下所示:
from conftest import target
然后,您可以在pytest.mark.skipif
中使用它,就像您在示例中打算的那样。
@pytest.mark.skipif(not target.isCommandSupported('commandA'), reason='command not supported')
def Test_MyTestClass:
如果需要重复相同的pytest。做记号跳过多个测试的逻辑,并希望避免复制粘贴,一个简单的修饰符将有助于:
check_unsupported = pytest.mark.skipif(not target.isCommandSupported('commandA'),
reason='command not supported')
@check_unsupported
def test_one():
pass
@check_unsupported
def test_two():
pass
在第一种情况下出现错误的原因是pytest注入了fixture,因此它们可以通过函数参数在测试函数中使用。它们从未被导入更高的范围。
获取AttributeError的原因是,装置是函数,在第一次(或每次)使用时进行评估。所以,当您通过pytest时。配置仍然是一个函数。这与其他答案失败的原因相同——如果导入它,则导入的是fixture函数,而不是结果。
没有直接的方法来做你想做的事情,但你可以通过一个额外的固定装置来解决这个问题:
@pytest.fixture(scope='module')
def check_unsupported(target):
if not target.isCommandSupported('commandA'):
pytest.skip('command not supported')
@pytest.mark.usefixtures('check_unsupported')
def test_one():
pass
def test_two(check_unsupported):
pass
给出静态编程语言中的编译错误(意外标记(使用';'分隔同一行上的表达式))
问题内容: setter方法是否仅用于设置作为参数传递的属性值?我们可以在将值分配给属性之前编写一些验证逻辑吗? 问题答案: 是的,验证逻辑绝对可以接受。 但是应注意,如果您具有广泛的验证,则可能希望将其提取到特定的验证器服务。但是对于简单的验证,您可以放心地执行此操作。 使用getters和setters的整个想法是让没有人可以直接访问您的字段。如果您只想设置/获取值,则可以设置它们。 相反,我
我需要为NetBeans安装Spring工具套件(STS),但我在Spring网站上只找到了用于Eclipse的Spring工具。我可以下载NetBeans的Spring工具套件吗?
下图是Microsoft SQL Server 2008 R2系统视图的一部分。从图中我们可以看到和。因此,为了将它们结合在一起,我会写一些类似的东西: 但是上面的代码给出了一个语法错误。我想那是因为陈述。谁能帮我解释一下吗? 添加错误消息: Msg 102,15级,状态1,第6行“=”附近的语法不正确。
问题内容: 我正在将pytest用于我的selenium测试,并想知道在一个测试中是否可能有多个断言? 我调用了一个比较多个值的函数,并且我希望测试报告所有不匹配的值。我遇到的问题是,使用“ assert”或“ pytest.fail”会在发现不匹配的值时立即停止测试。 有没有办法让测试继续运行并报告所有不匹配的值? 问题答案: 正如Jon Clements所评论的那样,您可以填充错误消息列表,然
在本章中,我们将讨论Axure RP中使用的条件逻辑。 如果 - 然后 - 在Axure中 与任何其他编程工具一样,Axure也支持条件逻辑,以在原型中创建增强的交互。 一旦熟悉了如何提供交互,为交互提供条件逻辑就是下一个层次。 以下是条件逻辑的简单流程 - 如果,单击特定小部件/屏幕 然后,执行特定的操作/交互 否则,保持/更改小部件或屏幕的状态 为了更好地理解这一点,让我们从前面的例子中恢复流