【问题标题】:Please provide a simple test-framework example that uses QuickCheck2请提供一个使用 QuickCheck2 的简单测试框架示例
【发布时间】:2013-10-12 22:32:10
【问题描述】:

我正在努力让这个basic test-framework example 与 QuickCheck2 一起使用。由于示例使用 QuickCheck 1,我收到上面页面中提到的以下错误。我假设通常首选使用 QuickCheck2,但是如何将它与测试框架一起使用?

错误:

No instance for (QuickCheck-1.2.0.0:Test.QuickCheck.Testable
    (Gen Prop))

提前致谢。


如果我导入 Test.Framework.Providers.QuickCheck2,我会收到以下错误:

del-me.hs:41:17:
    No instance for (QuickCheck-2.5.1.1:Test.QuickCheck.Property.Testable
                       (Gen Prop))
      arising from a use of `testProperty'
    Possible fix:
      add an instance declaration for
      (QuickCheck-2.5.1.1:Test.QuickCheck.Property.Testable (Gen Prop))
    In the expression: testProperty "sort2" prop_sort2
    In the second argument of `testGroup', namely
      `[testProperty "sort1" prop_sort1, testProperty "sort2" prop_sort2,
        testProperty "sort3" prop_sort3]'
    In the expression:
      testGroup
        "Sorting Group 1"
        [testProperty "sort1" prop_sort1, testProperty "sort2" prop_sort2,
         testProperty "sort3" prop_sort3]

【问题讨论】:

    标签: haskell quickcheck test-framework


    【解决方案1】:

    从 test-framework-quickcheck2 包中导入 Test.Framework.Providers.QuickCheck2,而不是从 test-framework-quickcheck 包中导入 Test.Framework.Providers.QuickCheck。

    【讨论】:

    • @Chris 你在隐藏 QuickCheck-1 吗?如果您想使用 QuickCheck-1,您链接到的页面上的第一个常见问题解答谈到显式隐藏 QuickCheck-2:您可能需要以相同的方式显式隐藏 QuickCheck-1。另一种可能性:您是否安装了多个版本的 QuickCheck-2?如果是这样,请尝试隐藏除其中一个之外的所有内容。
    • 看来我遇到了某种依赖地狱问题。隐藏我安装的两个版本的 QuickCheck2 之一然后破坏测试框架。请问您知道解决此类问题的简单方法吗?
    • @Chris 我知道解决此类问题的唯一方法是删除您的软件包数据库并重新安装您需要的所有软件包:-(
    【解决方案2】:

    安装最新的 test-framework-quickcheck2-0.3.0.2 将解决这个问题。 例如:如果您安装了 Haskell 平台,只需使用以下命令:

    cabal update
    
    cabal install test-framework-quickcheck2-0.3.0.2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多