Test suite sections of cabal

Hello, I recently started using test suite sections of cabal but it soon appeared very inconvenient to me. 1) test data files If I want to include test data files into package, I have to enumerate all test files since the usage of '*' is restricted. I just want to specify the top directory of test data files. Why does this restriction exist? 2) build-dependency I need to repeat all build-dependency of a library section to a test suite section. Specifying the library itself to build-dependency of a test suite section does not work. This violates the DRY philosophy. Any ideas to avoid this? Thanks. --Kazu

On Thu, Feb 16, 2012 at 12:56 AM, Kazu Yamamoto
2) build-dependency
I need to repeat all build-dependency of a library section to a test suite section. Specifying the library itself to build-dependency of a test suite section does not work. This violates the DRY philosophy.
You may specify the same library as a dependency given that you use different "hs-source-dirs". For example, see skein's Cabal file [1]. Of course, you won't be able to directly test any internal function. HTH, [1] http://hackage.haskell.org/packages/archive/skein/0.1.0.5/skein.cabal -- Felipe.

2) build-dependency
I need to repeat all build-dependency of a library section to a test suite section. Specifying the library itself to build-dependency of a test suite section does not work. This violates the DRY philosophy.
You may specify the same library as a dependency given that you use different "hs-source-dirs". For example, see skein's Cabal file [1]. Of course, you won't be able to directly test any internal function.
Do you mean that if we separate directories for src and test, build-depends of test-suite works, and if we don't separate, it does not work? --Kazu

On Thu, Feb 16, 2012 at 7:24 AM, Kazu Yamamoto
Do you mean that if we separate directories for src and test, build-depends of test-suite works, and if we don't separate, it does not work?
If we have separate directories, then you can "build-depends: own-package". This means that on the test suite's build-depends you need to list only the dependencies that the test-suite needs, not every dependency. Also, you don't need to constrain the version of any duplicated dependency. Cheers, -- Felipe.

Hello Felipe,
If we have separate directories, then you can "build-depends: own-package". This means that on the test suite's build-depends you need to list only the dependencies that the test-suite needs, not every dependency. Also, you don't need to constrain the version of any duplicated dependency.
This worked well. Thank you very much! --Kazu
participants (2)
-
Felipe Almeida Lessa
-
Kazu Yamamoto