Caball을 사용하여 (작은) 실행 파일을 작성하려고하는데, HSpec을 사용하여 테스트 한 유닛입니다. 거의 내 모든 코드 내가 main
기능은 내가 할 수있는 생각하는 지금과 같은 짧은 있지만 run
기능유닛 테스트 주요 기능 : 자체적으로 에러가 발생했습니다.
-- In src/Hecho.hs
module Main where
import Library(run)
main :: IO()
main = run
로 내 주요 모듈로 가져 main
의 몸을 포함한 별도의 모듈에 Library
입니다 내가 테스트를 작성할 수있는 방법이 있는지, 실행 함수가 같은지 확인하거나 다른 방법으로 테스트하는 방법이 있습니까? 문제는 내 사양 파일이 다른 Main
모듈을 정의하고 다른 Main
모듈에서 아무것도 가져올 수 없거나 최소한 그럴 수 없다는 것입니다. 나는 그런 다음
-- In test/HechoSpec.hs
module Main where
import Library
import Main
import Test.Hspec
main :: IO()
main = hspec $ do
-- Test definitions
을 시도하는 경우 예를 들어
, 나는 오류가 발생합니다 :
Module imports form a cycle:
module `Main' (test/HechoSpec.hs) imports itself
주요 기능을 테스트 할 수있는 방법이 있나요?
테스트 파일에서 'module Main'을 제거해도 아무런 영향이 없으며 동일한 오류가 발생합니다. [이 답변] (http://stackoverflow.com/a/11112455/1319998) 그것은 모듈이 지정되지 않았을 때 Haskell이 효과적으로'module Main (main)'을 삽입하는 것처럼 보입니다. –
확인. 아마 당신은 응용 프로그램의 메인 모듈을 위해'AppMain.hs'를 사용할 수 있습니까? – ErikR
내 응용 프로그램의 메인 모듈이 이미'Hecho.hs '파일에 있고, 내가 읽었던 것에서 실행 파일이 실행될 때'main' 함수가'Main' 모듈에 있어야한다고 생각합니다. –