这一假设似乎并不支持pytest的maxfail论点

2024-05-15 21:50:33 发布

您现在位置:Python中文网/ 问答频道 /正文

尽管指定了maxfail=1,但假设似乎仍在继续生成示例并运行它们,但很快就会失败

有解决办法吗

下面是一个小例子:

from hypothesis.stateful import invariant, rule, RuleBasedStateMachine


class MaxFail(RuleBasedStateMachine):
    count = 0

    @rule()
    def process(self):
        self.count += 1

    @invariant()
    def all_done(self):
        print('-- in invariant %d' % self.count)
        if self.count > 1:
            assert False


MaxFailTest = MaxFail.TestCase

Tags: fromimportself示例defcountrule例子
1条回答
网友
1楼 · 发布于 2024-05-15 21:50:33

这是因为从Pytest的角度来看,整个有状态测试只是一个测试——它调用^{,如果失败,它将不会运行任何其他测试函数

另一方面,假设不知道those added in its plugin之外的任何Pytest参数或设置。它可以与pytest、unittest或任何其他测试运行程序一起使用,因为它只是封装了您编写的内部测试函数

简而言之:假设不知道 maxfail参数,Pytest也不知道测试会失败,直到假设用它发现的最小示例引发错误

相关问题 更多 >