2012-08-02 4 views
4

템플릿 haskell을 사용하면 범위의 모든 함수를 나열 할 수 있습니까? 나는이 함께 할 노력하고있어 무엇템플릿이있는 범위의 모든 함수/값 가져 오기 haskell

allVarsInScope :: Q [Name] 

같은 뭔가 TEST_로 시작하는 모든 수입 기능의 목록을, 자동으로 테스트를 실행합니다.

+0

테스트가 QuickCheck 속성 인 경우 [Test.QuickCheck.All] (http://hackage.haskell.org/packages/archive/QuickCheck/2.4.1.1/doc/html/Test-QuickCheck-All.html) . –

+0

모듈 경계를 넘지 않습니다. –

+0

자동 테스트 실행 [HTF 프로젝트 참조] (http://hackage.haskell.org/package/HTF). 그것은 꽤 놀라운 일을합니다. –

답변

2

슬프게도 템플릿 하스켈에는 이러한 반영 기능이 없지만 해결 방법이 있습니다. 그러나 이와 같은 것을 직접 작성하기 전에 case_으로 시작하는 HUnit 테스트와 prop_으로 시작하는 QuickCheck 속성에 대해 이미 수행하는 test-framework-th 패키지를 사용해 보는 것이 좋습니다.

본 패키지는 본질적으로 자체 정의 구문 분석을 실행하여 정의를 선택하는 패키지 language-haskell-extract을 사용합니다. 다소 해로운 해결책이지만 실제로는 충분히 잘 작동합니다. 그러나 상당한 수의 종속성을 가져오고 추가 분석 통과로 인해 빌드 속도가 느려질 수 있습니다.

+0

만약 내가 그것을 도울 수 있다면, 나는 빌드 타임에 모든 모듈을 테스트하여 오히려 다시 파싱하지 않을 것이다. –

관련 문제