명령 줄 인수를 사용하여 화면에 출력하는 작은 함수 (또는 IO 동작)를 테스트하려고합니다. 내 원래 (검증 할) 기능은 다음과 같습니다 -- In Library.hs
module Library where
import System.Environment (getArgs)
run :: IO()
run = do
args <- getArgs
하스켈을 처음 사용하고 테스트중인 프로그램을 구조화하려고합니다. 나는 HUnit과 Cabal을 사용하기로 결정했다. TestRunner.hs과 AppName.cabal을 나에게 신비이다 src/
AppName/
Appname.hs
testsuite/
tests/
AppName/
TestRunner.hs
App
나는 eval :: Wff -> Assignment -> Maybe Bool 함수에 대한 HUnit 테스트를 작성하고 있습니다. data Wff = Var Name
| Not Wff
| Or Wff Wff
deriving (Eq)
및 Assignment가 Wff 각 변수에 대한 부울 값을 제공 연관 목록 유형의 별칭입니다
나는 최근에 스택이있는 트래비스 CI를 사용하려고 시도해 왔으며 어떤 문제에 대해서는 이 실행 중입니다. 내 .travis.yml 파일이 여기에 제의 repo에 있습니다 sudo: false
# Caching so the next build will be fast too.
cache:
directories:
- $HOME/.stack
최근 HUnit 테스트 프레임 워크를 사용하여 haskell에서 테스트를 실행했습니다. 나는 첫 번째 인수로 PutText st를 취하는이 함수 PutText와 runTestText를 보았습니다. 그러나이 방법을 사용하는 방법을 잘 모르겠으며이를 사용하는 방법을 이해하는 데 도움이 필요하십니까?
빈 목록을 소요하고 그냥 반환하는 함수, func :: [a] -> [a]
func x = x
emptyListTest :: Test
emptyListTest = TestCase $ assertEqual "for (func [])," [] $ func []
main :: IO Counts
main = runTestTT $ TestList [em
나는 현재 다음 테스트 코드가 있습니다 testUpdate :: Test
testUpdate = testCase "update does change artist" $ do
(created, Just revised, parents) <- mbTest $ do
Just editor <- fmap entityRef <$> findEditorB