Я пытался использовать cabal-install как способ сборки и, что более важно, тестирования моих проектов haskell, немного похожий на то, как Maven используется в проектах Java, в основном потому, что это, кажется, также хороший способ интегрировать в Jenkins или ci или около того, и это кажется очень надежным в том смысле, что вам не нужна среда разработки и т.д., настроенная для проверки и подтверждения того, компилируется ли код и корректен или нет.
В любом случае, я использую для этого QuickCheck и HUnit. В другом сообщении здесь об обмене стеками я нашел хороший способ интегрировать 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, Cabal сообщает мне, что они действительно нашли набор тестов, но в нем нет тестов. Я пробовал подход, упомянутый в сайт из Distribution.TestSuite.QuickCheck2, но там, кажется, не упоминается, как открыть тест, и мне, кажется, не удается выполнить этот запуск. Я немного растерялся, я могу запускать эти тесты quickcheck с помощью quickcheck, но не с помощью Cabal, и я хотел бы иметь это, чтобы иметь возможность быстро проверять все мои тесты и код и использовать его в Jenkins или около того. Есть у кого-нибудь идея?
Я попытался предоставить всю информацию, которая, по моему мнению, необходима, без чрезмерного усложнения, поэтому я не опубликовал полный файл Кабала и так далее, если это будет необходимо, я, конечно, сделаю это. Я нашел довольно много похожих сообщений, но большинство из них сводятся к использованию чего-то другого, кроме подробного-0.9, что было бы жаль, поскольку, похоже, он довольно хорошо работает с HUnit в качестве настройки, и я хотел бы использовать как HUnit, так и QuickCheck таким же образом, конечно, предпочтительно выставлять один массив тестов, содержащий как тесты HUnit, так и QuickCheck.
Каспер