我刚刚看到为基于属性的测试提出了集成收缩的概念。与类型定向收缩相比,这种方法似乎有一些优势,但是在中有人指出,集成收缩方法在一元生成器的情况下并不适合:
do x <-任意xs <-任意返回(x:xs)
现在,收缩的默认行为将首先收缩x(保持xs常数),然后收缩xs (持有x常量),这严重限制了收缩我将上述评论解读为“集成
Value [Value]因此,公式是一个文字列表,每个文字包含一个谓词和一些参数;谓词/参数是字符串形式的约束的析取的值。这给了我们一个列表,呼!
如果我的某个QuickCheck属性失败了,我可能会得到一大堆难以理解的输出。在尝试收缩之前,我常常通过使用只能生成一小部分(小)值的任意实例来绕过这个问题。为我的每种类型实现收缩函数似乎有一点帮助,但并不像我想要的那样多。我仍然得到了一大堆的输出。我认为我想要的是一个很小的文字列表,其中每个文字
错误消息是:"D:\pythonProject\3-7收缩来宾list\venv\Scripts\python.exe“"D:/pythonProject/3-7收缩来宾列表/收缩来宾list.py”回溯(最近一次调用):文件"D:/pythonProject/3-7收缩来宾列表/收缩来宾list.py",第19行,在guests.pop(5) IndexError: p