Próbowałem użyć cabal-install jako sposobu na zbudowanie i, co ważniejsze, przetestować moje projekty haskell, trochę podobne do sposobu, w jaki Maven jest używany w projektach Java, głównie dlatego, że wydaje się, że być dobrym sposobem na integrację z Jenkinsem lub PW, i wydaje się być bardzo niezawodny w tym sensie, że nie potrzebujesz środowiska programistycznego i tak dalej, aby sprawdzić i potwierdzić, czy kod jest kompilowany i poprawny albo nie.Haskell Cabal QuickCheck Integration
W każdym razie używam do tego QuickCheck i HUnit. W innym poście here na wymianie stosu znalazłem ładny sposób na integrację HUnit i cabal, używając testu funkcji w Distribution.TestSuite.HUnit, aby utworzyć odsłoniętą tablicę testów w moim module testowym. Prace.
Starałem się zrobić ten sam styl skonfigurować z 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:[]
chcę zobaczyć ten test nie powiedzie się.
Plik cabal, który mam działa z konfiguracją HUnit, z testami HUnit działającymi i kończącymi się niepowodzeniem lub niezawierającymi, tak jak powinny. Jeśli jednak używam tego samego zestawu do testów szybkiego sprawdzania, cabal mówi mi, że rzeczywiście znalazł pakiet testowy, ale nie ma w nim testów. Próbowałem podejście, które jest wymienione na site Distribution.TestSuite.QuickCheck2, ale tam nie wydają się wspomnieć, jak wystawiać test i wydaje się, że nie uda się zrobić tego uruchomienia. Teraz jestem trochę zagubiony, mogę uruchomić te testy Quickcheck z samym checkem, ale nie z Cabal i chciałbym, aby to było w stanie szybko zweryfikować wszystkie moje testy i kod i użyć go w Jenkins lub tak. Czy ktoś ma pomysł?
Próbowałem podać wszystkie informacje, które uważam za niezbędne bez zbytniego komplikowania rzeczy, więc nie wysłałem kompletnego pliku cabal i tak dalej, jeśli byłoby to konieczne, oczywiście to zrobię. Znalazłem sporo podobnych postów, ale większość z nich sprowadza się do użycia czegoś innego niż szczegółowego - 0.9, co byłoby szkoda, ponieważ wydaje się działać całkiem nieźle z HUnit jako konfiguracją i chciałbym użyć zarówno HUnit, jak i QuickCheck w ten sam sposób, najlepiej eksponując jedną tablicę testów zawierającą zarówno testy HUnit, jak i QuickCheck.
Kasper
Oto możliwe przykład: https://github.com/patperry/hs-monte-carlo/blob/master/monte-carlo.cabal i test z głównego wywołującego QC: https: // github .pl/patperry/hs-monte-carlo/blob/master/tests/Main.hs – gliptak
Kontynuacja komentarza gliptaka - chciałbym zbadać użycie frameworka testowego; Uważam, że jest to trochę wygodniejsze. [Dodatkowy] (https://github.com/isturdy/q/blob/master/tests/Tests.hs) [przykład] (https://github.com/isturdy/q/blob/master/tests/Data /Queue/RealtimeTests.hs). – isturdy