У меня есть удивительное количество трудностей, связанных с проведением модульных испытаний, которые будут выполняться под управлением. Я скопировал тестовый код дословно из the cabal documentation, за исключением изменения имени модуляКак использовать подробный-0.9 в испытаниях в кабине
{-# LANGUAGE FlexibleInstances #-}
module Test.Integral (tests) where
import Distribution.TestSuite
instance TestOptions (String, Bool) where
name = fst
options = const []
defaultOptions _ = return (Options [])
check _ _ = []
instance PureTestable (String, Bool) where
run (name, result) _ | result == True = Pass
| result == False = Fail (name ++ " failed!")
test :: (String, Bool) -> Test
test = pure
-- In actual usage, the instances 'TestOptions (String, Bool)' and
-- 'PureTestable (String, Bool)', as well as the function 'test', would be
-- provided by the test framework.
tests :: [Test]
tests =
[ test ("bar-1", True)
, test ("bar-2", False)
]
Однако, когда я пытаюсь построить тесты, я получаю следующие сообщения:
Test/Integral.hs:6:10:
Not in scope: type constructor or class `TestOptions'
Test/Integral.hs:12:10:
Not in scope: type constructor or class `PureTestable'
I попытался импортировать их непосредственно из Distribution.TestSuite, но он сказал, что они не были экспортированы. Это достаточно просто, что я должен делать что-то глупое, но я не вижу, что это такое.
'TestOptions' и др по всей видимости, со ссылкой на старой старой версии QuickCheck. Я предлагаю вам использовать современную тестовую среду (кажется, что вы смотрите, это всего лишь рамка для запуска набора тестов через cabal, а не создание реального набора - изучите вкусную или тестовую структуру). –