Я пытаюсь использовать cabal-install как способ построения и, что более важно, проверять мои проекты haskell, немного похоже на то, как Maven используется в Java-проектах, главным образом потому, что кажется, что быть хорошим способом, а также интегрироваться в Jenkins или ci или так, и он кажется очень надежным в некотором смысле, что вам не нужна среда разработки и т. д., настроенная для проверки и подтверждения того, компилируется и исправляется код или нет.Haskell Cabal QuickCheck Integration
В любом случае, я использую QuickCheck и HUnit для этого. В другом сообщении here об обмене стеками я нашел хороший способ интегрировать HUnit и cabal с помощью функционального теста в Distribution.TestSuite.HUnit для создания массива открытых тестов в моем тестовом модуле. Работает.
Я попытался сделать то же стиль создан с QuickCheck,
import qualified Distribution.TestSuite.QuickCheck2 as CabalQuickCheck
alwaysFalseOneArg::Int->(Int,Int)
alwaysFalseOneArg x = (x,x)
quickCheckPropOneArg = \s->let (a,b)=alwaysFalseOneArg s in a==b && a/=b
cabalQCTest = CabalQuickCheck.test "test" quickCheckPropOneArg
tests=cabalQCTest:[]
Я хочу, чтобы этот тест не в состоянии.
В файле cabal у меня есть работы с настройкой HUnit, при этом тесты HUnit работают и не работают или не работают должным образом. Если я использую одну и ту же настройку для выполнения тестов quickcheck, каббаль говорит мне, что он действительно нашел набор тестов, но в нем нет тестов. Я пробовал подход, который упоминается в файле site Distribution.TestSuite.QuickCheck2, но там они, похоже, не упоминают, как выставить тест, и мне, похоже, не удается выполнить этот прогон. Сейчас я немного в затруднении, я могу запустить эти тесты quickcheck с помощью самого quickcheck, но не с помощью cabal, и я хотел бы иметь это, чтобы иметь возможность быстро проверить все мои тесты и код и использовать его в Jenkins или так. У кого-нибудь есть идея?
Я попытался предоставить всю информацию, которая, по моему мнению, необходима без излишнего усложнения материала, поэтому я не опубликовал полный файл-кабалу и т. Д., Если это было необходимо, я, конечно, сделаю это. Я нашел немало похожих сообщений, но большинство из них сводится к использованию чего-то еще, чем подробного 0,9, что было бы жалко, поскольку, похоже, он очень хорошо работает с HUnit в качестве настройки, и я хотел бы использовать как HUnit, так и QuickCheck таким же образом, предпочтительно отображать один массив тестов, содержащий тесты HUnit и QuickCheck.
Kasper
Вот возможный пример: https://github.com/patperry/hs-monte-carlo/blob/master/monte-carlo.cabal и тест с главным вызывающим QC: https: // GitHub .com/patperry/hs-monte-carlo/blob/master/tests/Main.hs – gliptak
Следуя за комментарием gliptak, я исследовал бы с помощью test-framework; Мне это кажется более удобным. [Дополнительный] (https://github.com/isturdy/q/blob/master/tests/Tests.hs) [пример] (https://github.com/isturdy/q/blob/master/tests/Data /Queue/RealtimeTests.hs). – isturdy