Приведите пример простой тестовой среды, в которой используется QuickCheck2.

Я немного пытаюсь заставить этот базовый пример тестовой среды работать с 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]

person Chris    schedule 14.05.2013    source источник


Ответы (2)


Импортируйте Test.Framework.Providers.QuickCheck2 из пакета test-framework-quickcheck2 вместо Test.Framework.Providers.QuickCheck из пакета test-framework-quickcheck.

person dave4420    schedule 14.05.2013
comment
@Chris Ты прячешь QuickCheck-1? Первый часто задаваемый вопрос на странице, на которую вы ссылаетесь, говорит о явном сокрытии QuickCheck-2, если вы хотите использовать QuickCheck-1: вам может потребоваться явно скрыть QuickCheck-1 таким же образом. Другая возможность: у вас установлено более одной версии QuickCheck-2? Если это так, попробуйте скрыть все, кроме одного из них. - person dave4420; 14.05.2013
comment
Похоже, у меня возникла какая-то проблема с зависимостями. Если скрыть одну из двух установленных мной версий QuickCheck2, тестовая среда будет нарушена. Вы знаете простой способ решения такого рода проблемы, пожалуйста? - person Chris; 14.05.2013
comment
@Chris Единственный известный мне способ решения подобных проблем — удалить базу данных пакетов и переустановить все необходимые пакеты :-( - person dave4420; 14.05.2013

Установка новейшей версии test-framework-quickcheck2-0.3.0.2 решит эту проблему. Например: если у вас установлена ​​платформа Haskell, просто используйте следующие команды:

cabal update

cabal install test-framework-quickcheck2-0.3.0.2
person sverien    schedule 12.10.2013