Cabal output is redirected but not generated

You should define module name in your TestSuite.hs file as Main, like there for example.

A quote from The Haskell 98 Report:

A Haskell program is a collection of modules, one of which, by convention, must be called Main and must export the value main.


Instead of renaming the TestSuite module as Fedor suggests you could add a GHC option to set the name of the main module to your Cabal file:

Test-Suite testFedor
    ghc-options:    -main-is TestSuite

Apparently Cabal main-is and GHC main-is are different. I don't know in what way.