A little while ago shelltestrunner was announced on
haskell-cafe. At the time I was slowly losing hope on ever getting decent test coverage in cblrepo using
HUnit. Using something like
shelltestrunner could be an easier and more workable solution, especially since what
cblrepo needed most in the short term is a bit of integration testing.
shelltestrunner is basically just a tool that runs shell commands and compares output (both
stderr) and the exit code. It’s also possible to provide data to be passed to the command on
stdin. The documentation on the
shelltestrunner home page is very good and accessible. There are only a few things that I’d like to add to it:
- Use the
--with(`-w´) flag, it’s very handy to avoid littering the tests with long paths to the output of your build environment.
- There is no support for set-up and tear-down steps in the tests (in my opinion this would be a very nice addition to the tool) so anything needed to be set up for the actual tests, will itself have to be tests.
- There is no way to name tests (would be another good addition) so I found it crucial to organise tests into several files.