title: Haskell unit testing
body: <p>I'm new to haskell and working on unit testing, however I find the ecosystem to be very confusing.  I'm confused as to the relationship between HTF and HUnit.  </p>
  
  <p>In some examples I see you set up test cases, export them in an tests list, and then run in ghci with <code>runTestsTT</code> (like <a href="http://hunit.sourceforge.net/HUnit-1.0/Guide.html" rel="noreferrer">this HUnit example</a>). </p>
  
  <p>In other examples, you create a test runner tied into the cabal file that uses some preprocessor magic to find your tests like in this <a href="https://github.com/skogsbaer/HTF/blob/master/sample/TestMain.hs" rel="noreferrer">git example</a>.  Also it seems that HTF tests need to be prefixed with <code>test_</code> or they aren't run? I had a hard time finding any documentation on that, I just noticed the pattern that everyone had.</p>
  
  <p>Anyways, can someone help sort this out for me? What is considered the standard way of doing things in Haskell? What are the best practices? What is the easiest to set up and maintain? </p>