2013-07-05 6 views
0

필자가 작성한 간단한 렉서에 대해 quickcheck을 사용하여 테스트를 작성하려고합니다. 는 그러나, 나는 링크 오류의 어떤 종류의 파울 떨어지는 것 같다 내가 사용 구축 한테스트 스위트를 라이브러리에 연결하는 중 오류가 발생했습니다.

음모-DEV

내 .cabal 파일을 라이브러리 섹션이 그 아래에 노출 한 라이브러리 "MYLIB" 을 구축하고있다 modules 섹션 Lexical.Token과 test-suite 아래에 build_depends 아래에 "mylib"가 있고 다른 모듈 아래에 Lexical.token이있다.

무엇이 누락 되었습니까?

Couldn't match expected type `Token' 
      with actual type `mylib-0.0.0.1:Lexical.Token.Token' 
Expected type: [Token] 
Actual type: [mylib-0.0.0.1:Lexical.Token.Token] 

답변

1

음모가 "Lexical.Token"모듈 두 곳 이상의 충돌입니다 다음과 같이 내가 (7.4.1) GHC 나가 오류입니다. 혼동스럽게도 둘은 같은 파일입니다.

  1. mylib의 "로컬 설치 및 등록"버전으로 build-depends에서 mylib-0.0.0.1를 해결합니다.
  2. other-modules 항목으로 Lexical.Token을 소스에서 확인 중입니다. 테스트 스위트를 통해 이 노출되어이되어야합니다.

Lexical.Tokenother-modules에서 제거하는 문제를 해결했다고 생각합니다. 테스트 스위트는 테스트 된 코드와 코드를 공유해서는 안되며 대신 테스트 된 코드가 외부 라이브러리 인 것처럼 모든 모듈을 가져옵니다.

관련 문제