Я пытаюсь получить простой модульный тест для работы, написанный на HUnit.Взаимодействие Кабала и HUnit
Модуль, который я проверил, называется «MyTests».
module MyTests where
import qualified Test.HUnit as H
gamma = H.TestCase (H.assertEqual "foo" 1 1)
-- Run the tests from the REPL
runTestTT $ H.TestList [H.TestLabel "foo" gamma]
я могу запустить этот модуль прекрасно от Кабал РЕПЛ:
λ> run
Cases: 1 Tried: 1 Errors: 0 Failures: 0
Counts {cases = 1, tried = 1, errors = 0, failures = 0}
Я хочу, чтобы интегрировать эти тесты с Кабал таким образом, что я могу запустить cabal test
.
От нескольких часов прибегая к помощи я обнаружил, что я должен быть в состоянии проверить мое приложение с помощью следующей seqeuence:
cabal configure --enable-tests && cabal build tests && cabal test
Я вставил следующий в моем .cabal файле:
Test-Suite tests
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs: test src
test-module: YourTestModule
build-depends: base
, HUnit
, Cabal
, QuickCheck
, test-framework
, test-framework-hunit
, test-framework-quickcheck2
В Main.hs
файл в папке test/
у меня есть следующее:
module Main where
import Test.Framework (defaultMain, testGroup)
import Test.Framework.Providers.HUnit
import Test.Framework.Providers.QuickCheck2 (testProperty)
import Test.QuickCheck
import Test.HUnit
import Data.List
import qualified MyTests as AG
main = defaultMain tests
tests = [
testGroup "Some group" [
testCase "foo" AG.gamma
]
]
Это, очевидно, возвращает ошибку:
test/Main.hs:19:32:
Couldn't match type ‘Test’ with ‘IO()’
Expected type: Assertion
Actual type: Test
In the second argument of ‘testCase’, namely ‘AG.gamma’
In the expression: testCase "foo" AG.gamma
мне очень нравится HUnit тесты, которые я написал до сих пор (это MWE) и мне интересно, я могу HW интегрировать эти тесты с Афоризм?