Test.Framework“plusTestOptions”和“testProperty”

2024-03-13

我有一个单独的 QuickCheck2 属性,我想运行超过标准 100 次,但我一直不知道如何说服Test.Framework运行更多使用plusTestOptions -- the testProperty失败并显示“0 次测试后参数耗尽”。

相关代码片段:

mkMsysTests :: TestArgs -> [Test]
mkMsysTests opts =
  [ testGroup "foo"
    [ plusTestOptions testOptions_more (testProperty "bar" prop_bar) ]
  ]

testOptions_more =
  TestOptions { topt_seed = Nothing
              , topt_maximum_unsuitable_generated_tests = Nothing
              , topt_maximum_test_size = Just 500
              , topt_maximum_test_depth = Nothing
              , topt_timeout = Nothing
              , topt_maximum_generated_tests = Just 10000
              }

理论上,这应该测试该属性 10,000 次。但事实并非如此。有没有好的文档或示例演示如何使用TestOptions运行性能测试超过标准 100 次?


答案是必须增加不合适的测试数量,topt_maximum_unsuitable_generated_tests,使其大于或等于生成的测试的数量,topt_maximum_generated_tests。另外,应该使用mempty实例并使用更新的记录成员对其进行修改。修改后的代码片段为:

import           Data.Monoid (mempty)
import           Test.Framework (Test, defaultMainWithArgs, plusTestOptions, testGroup)
import           Test.Framework.Options               (TestOptions' (..))
import           Test.Framework.Providers.HUnit       (testCase)
import           Test.Framework.Providers.QuickCheck2 (testProperty)
import           Test.HUnit                           (Assertion, assertBool, assertFailure)
import           Test.QuickCheck                      (Property, choose, forAll)

{- list of tests -}
mkMsysTests :: TestArgs -> [Test]
mkMsysTests opts =
  [ testGroup "foo"
    [ plusTestOptions testOptions_more (testProperty "bar" prop_bar) ]
  ]

testOptions_more =
  mempty { topt_maximum_unsuitable_generated_tests = Just 10000
         , topt_maximum_generated_tests = Just 10000
         }

我没有很好的解释为什么Test.Framework如果不合适的测试数量少于生成的测试数量,则代码放弃;我只是对代码进行了快速的“眼球”扫描并注意到了修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Test.Framework“plusTestOptions”和“testProperty” 的相关文章

随机推荐

  • DI Singleton 实例与 Transient 实例

    几年前 IoC 性能指南指出 IoC 容器应仅用于解析长期实例 基本上是单例 而应使用单例工厂 由容器保存 创建瞬态类型对象 我现在正在阅读有关 ASP NET Core 的内容 我看到的几个示例对其注入的对象使用瞬态生命周期 现在瞬态是提
  • 如何在 Meteor 提供的服务器中设置环境变量?

    我想在远程服务器上测试流星谷歌分析包 设置 json public ga account UA dfgddhdh 5 在本地服务器中 我只是传入 settings选项 我在看http meteorpedia com read Environ
  • 如何在各种单独的文件中分离与特定模式匹配的文件名和内容

    我试图将与特定模式匹配的文件名分离到一个单独的文件中 并将其内容分离到与特定模式匹配的不同文件中 我的文件名包含特殊字符 如 我尝试使用 grep 命令 Grep Ril 和 Grep H 打印文件名 但它不起作用 bin bash cd
  • Flutter,后台获取包不工作,androidx 不兼容

    我想在应用程序未运行时进行一些操作 所以我决定使用后台提取包 我一步步按照android设置 这是我的 pubspec yaml 的一部分 version 1 0 0 1 environment sdk gt 2 1 0 lt 3 0 0
  • 在 C++ 中编写可移植动态可加载库的最简单方法是什么?

    我正在开发一个具有多个相似代码路径的项目 我想将其从主项目中分离到插件中 该项目必须保持跨平台兼容 并且我研究过的所有动态库加载 API 都是特定于平台的 创建一个无需额外修改代码即可在多个操作系统上编译和运行的动态库加载系统的最简单方法是
  • 如何使用卡图生成概述国家的世界地图

    我最近一直在看卡图仪 据我所知 我们使用 kartograph py 生成 svg 然后使用 kartograph js 中的 svg 在 Web 界面中渲染地图 我想生成这样的东西http kartograph org showcase
  • 自动加载类的父类是否调用 __autoload() ?

    In main php 添加自动加载并创建一个新对象 function autoload class require once class php t new Triangle side1 side2 side3 In Triangle p
  • python:改变“全局变量”以动态地将事物放入范围内

    这是多么可怕的想法 班级monad实施with将事物放入和超出范围的接口 因此我可以编写一个通用函数库 例如 m chain 引用函数unit and bind谁可以在运行时放入实现 所有这些代码的作用或它是否是一个好主意并不重要 我尝试过
  • 如何从应用程序(布局)XML 变量中获取清单版本号?

    我希望有一种方法可以在代码的主要部分引用项目的清单版本号 到目前为止 我一直在做的是将字符串 XML 文件中的版本号链接到清单 string Version 我想要做的是反过来 将字符串 XML 变量链接到清单中的版本 原因 我只想更改一个
  • iOS Webrtc - 捕获本地视频流时崩溃

    我正在尝试使用 Google 存储库中的 webrtc 库 我按照这些步骤创建了一个单独的项目 其中包含类似于 APPRTC 的说明和代码 并且我能够让它工作 我能够在两台设备之间进行会议 但是当我尝试与旧项目集成时 Webrtc 崩溃了
  • Android 中的 SYSCALL_INLINE

    我需要在 Android NDK 内部使用系统调用来防止包装函数的挂钩 在 Linux 中 有像 SYSCALL INLINE 这样的宏 它允许在没有包装函数的情况下使用系统调用 因此 宏将系统调用汇编代码直接嵌入到项目中 我在 Andro
  • 如何在CodeIgniter中实现Redis?

    我得到的教程是 http yaminnoor com redis codeigniter http yaminnoor com redis codeigniter https codeigniter com user guide libra
  • 使用 S3 作为静态网页和 EC2 作为 REST API 一起使用吗? (AWS)

    我发现这个链接讨论了将静态数据和 Web api 分离到静态 s3 Web 服务器以及用于 api 和 ec2 Web 服务器的 bean stalk 应用程序来创建网站 Charles 的回答是准确的 CORS 是解决两个域之间移动问题的
  • 检查记录是否存在,如果存在则“更新”,如果不存在“插入”

    我想查表PREMIUM SERVICE USER如果存在任何记录strClientID update timeValid如果没有记录则 30strClientID插入到premium service user table 我究竟做错了什么
  • 为什么 msiexec TARGETDIR 似乎不起作用

    I tried msiexec i yarn 1 10 1 msi TARGETDIR C programs qb 软件已安装 但未安装到 TARGETDIR 中 我错过了什么 您可以尝试以下命令行 msiexec exe i yarn 1
  • Angular 5下载带有post请求的excel文件

    我遇到一个问题 我已经使用 Angular 1 下载了一个 Excel 文件 但如果我在 Angular 5 中实现相同的代码 则会显示文件已损坏的错误 我的回复是在数组缓冲区我无法读取该文件 下面是我的代码 Service Downloa
  • Powershell 中的高级模式匹配

    希望你能帮我做点什么 感谢 mklement0 我得到了一个很棒的脚本 它匹配按字母顺序排列的单词的最基本的初始模式 然而 缺少的是全文搜索和选择 当前脚本的示例 其中包含 Words txt 文件中几个单词的小样本 App Apple A
  • PHP Phar - file_exists() 问题

    我的 Phar 脚本使用 fwrite 创建一个新文件 效果很好 它在 phar 外部创建新文件 与 phar 文件位于同一目录中 但是当我使用 if file exists file php 它不会拾取它 但随后包含并要求确实选择它 有人
  • 如何在 PostgreSQL 9.4+ 中将简单的 json(b) int 数组转换为整数[]

    我有一个来自 json 对象的数组 1 9 12 由于它使用方括号表示法 因为它是直接从 json 对象获取的 所以我无法将其转换为 integer 当我尝试使用时array agg jsonb array elements simplei
  • Test.Framework“plusTestOptions”和“testProperty”

    我有一个单独的 QuickCheck2 属性 我想运行超过标准 100 次 但我一直不知道如何说服Test Framework运行更多使用plusTestOptions the testProperty失败并显示 0 次测试后参数耗尽 相关