<strong>Possible Duplicate:</strong><br /><a href="https://stackoverflow.com/questions/14595934/outputting-haskell-ghci-command-results-to-a-txt-file" rel="nofollow">Outputting Haskell GHCi command results to a txt file</a></blockquote>
I am new to Haskell and I am trying to redirect test cases output results to a text file. The way it is set up now, is a
AddAllTestCases.hs contains all the test cases I need to run in order to test a function I created. I run the test cases on GHCi by loading
AddAllTestCases.hs and then simply typing
main and hitting enter. That causes test case output results to print inside the GHCi perfectly.
Because there hundreds of test cases, I need to redirect output results to text file.
writeFile "myoutput.txt" $ show $ main
I get the following error:
No instance for (Show(IO())) arising from a use of show
Attempt #2 in CMD (trying to create an executable, then outputting executable results to text file):
ghc --make AddAllTests.hs -o testResults.exe
Which gives me the following error:
Warning: output was redirected with -o, but no output will be generated because there is no Min module
This is weird because when I am using GHCi (attempt #1) and I type in
main it executes everything perfectly, which I would assume, implies that there is a main module?
I greatly appreciate any help with redirecting test case results to a text file.
Many thanks in advance!Answer1:
You need a
Main module (and a
main action) to produce an executable. You can rename your module to
Main, or you can specify the module to be considered
Main on the command line,
ghc --make -main-is AddAllTests AddAllTests.hs -o testResults.exe
to produce an executable without a module named
A method without compiling would be
ghc AddAllTests.hs -e "main" > testResults.txt
Another method would be to have a file in which you just list all test cases,
3 + 2 :: Rational reverse "foobar" :q
ghci with redirected in- and output
ghci < testCases > testResults.txt