Thanks, Sean. On Tue, Sep 9, 2008 at 3:46 PM, Sean Leather <[EMAIL PROTECTED]> wrote:
> > How do folks like to package up QuickCheck tests for their libraries? In >> the main library? As a separate repo & package? Same repo & separate >> package? Keeping tests with the tested code allows testing of non-exported >> functionality, but can add quite a lot of clutter. >> > > I have QuickCheck properties plus HUnit tests, but I think the question is > the same. For me, it's in the same repository and shipped with the package > source. I think that if you ship source (even via Hackage), you should also > ship tests. So, if somebody wants to modify the source, they can run the > tests. And making it convenient to test is very important, so I have "cabal > test" (or "runhaskell Setup.hs test" without cabal-install) configured to > run the tests. I don't think tests should (in general) be part of the > user-visible API, so I have them external to the module hierarchy. > How do you set up cabal to do these tests? Do your libraries depend on HUnit? Where do you like to place your tests? In the functionality modules? A parallel structure? A single Test.hs file somewhere? Testing non-exported functionality without exporting the test interface > seems difficult in general. Is there a way to hide part of a module > interface with Cabal? Then, you could have a 'test' function exported from > each module for testing but hidden for release. > My current leaning is to split a package "foo" into packages "foo" and >> "foo-test" >> > > What benefit does this provide? > It keeps the library and its dependencies small. Probably some of the alternatives do as well. For testing, I'm using checkers<http://haskell.org/haskellwiki/Checkers>in addition to QuickCheck, and I'd prefer not to make casual library users have to pull in those libraries as well. - Conal
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe