易于使用,可扩展的随机测试库。

pyquchk的Python项目详细描述


pyquchk-随机和串行测试

pyquchk(python quickcheck的缩写)是最全面的 以及可扩展、易用、随机、串行的测试框架。 从名字上看,它的灵感来自 Haskell QuickCheck, 但目标是提供更多的能力。

完整的文档,包括使用示例,可在 pythonhosted.org/pyquchk

功能

已经实施

pyquchk结合了两种方法来生成 单一框架:

  • QuickCheck-类(随机)

    随机(模糊)测试对许多随机生成的参数运行一个函数 值以确保它通常是正确的。一些功能(都来自 原始的快速检查功能,仅限于pyquchk

  • SmallCheck-类似(串行)

    串行测试意味着从一些边缘情况和 小的。这会耗尽所有可能的值,直到达到某个“大小”,并且 确定性的,与随机方法相反。串行测试很好 对随机函数进行了补充,从而使函数测试的可信度更高 是正确的。

其他值得注意的功能包括:

  • 许多可配置的内置生成器,用于不同的值类型 (请参见套利了解当前实施的生成器列表)

  • 内置类型和用户创建的类型都支持自定义生成器

  • 易于编写和读取的语法,用于简单的属性检查和完整的 要使用框架运行的测试(nosepy.test例如)

  • 试图给你一个最小的反例, 总是对生成的值执行收缩(如果在 串行测试,可能已经很小了)

  • assume函数(允许所谓的条件属性等)

  • 轻松创建套利组合

    示例:列表中的字符串;具有相同大小字符串的元组。

计划

pyquchk正在积极开发中,我有许多特性要实现 这里:

  • 选择检查exists,而不是for_all

  • 测试计时

    显示在pyquchk代码和测试函数中花费的时间

  • 根据其他生成器值支持生成器参数

    类似于原始quickcheck中的forAll,但所有内容都要定义为函数 默认参数。 示例:范围[0:len(list)]中的整数。

  • 尺寸支持

    generation函数接受将(从0增加到1?)的size参数。从第一个到 最后一次测试。从quickcheck中探索sizedresize等等-它们是否适合这里。

  • 寻找最佳表达方式:

    • 修饰语如正/负/非空/…
    • 不同的数字分布,如均匀/指数/…
    • def f(a={int:[str_(...)]},b=[float],c={'x': int, 'y': list})
    • 这样的结构
  • python 3注释有什么用处吗?

  • 更好地测试pyquchk本身

  • 来自QuickCheck的智能收缩,SmartCheck

  • 收集、分类、覆盖

    不仅是布尔参数(label/no label),还有数字参数。 例:近似函数结果与精确函数结果的差值。

  • 详细设置

  • 打印种子并允许更改它

  • 不要快速失败

  • 添加超时

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用文件路径获取文件位置?   java XPath从某个元素后的元素获取文本   具有多个名称空间的JavaDOM   使用hibernate在表别名处出现java意外令牌错误   springdatajpa中的java交叉连接   在firebase中循环时使用java空指针   如何使用java驱动程序执行mongodb getShardDistribution()   swing Java GUI在另一个方法的新窗口中显示文本   java如何使用Google Guava为每个新地图条目设置不同的过期超时?   在视图寻呼机中将数据从活动传递到片段时,找不到id片段的java视图   Java 8 Lambda流筛选器更改值   java为什么在程序中不使用main方法时Eclipse不会显示错误。   java JavaFX文件选择器显示自定义选项   swing Java程序在MAC上未正确运行   java使用Twitter4j发布twitter线程   JMS请求访问被拒绝后,java jedis无法连接到redis   java GETSTATE weblogic命令花费的时间太长,有什么建议吗?   java如何将此代码转换为Racket/Scheme   java如何使用经度和纬度获取地址   java是我的Glassfish设置泄漏内存吗?