4

重複の可能性:
HaskellGHCiコマンドの結果をtxtファイルに出力する

私はHaskellを初めて使用し、テストケースの出力結果をテキストファイルにリダイレクトしようとしています。現在の設定方法は、AddAllTestCases.hs作成した関数をテストするために実行する必要のあるすべてのテストケースが含まれていることです。GHCiでテストケースを実行するには、ロードAddAllTestCases.hsしてから、Enterキーを押しmainて入力します。これにより、テストケースの出力結果がGHCi内に完全に出力されます。

何百ものテストケースがあるので、出力結果をテキストファイルにリダイレクトする必要があります。

試行#1:

writeFile "myoutput.txt" $ show $ main

次のエラーが発生します。

No instance for (Show(IO())) arising from a use of show

CMDで#2を試みます(実行可能ファイルを作成してから、実行可能ファイルの結果をテキストファイルに出力します):

ghc --make AddAllTests.hs -o testResults.exe

これにより、次のエラーが発生します。

Warning: output was redirected with -o, but no output will be generated because there is no Min module

これは奇妙なことです。GHCi(試行#1)を使用して入力mainすると、すべてが完全に実行されます。これは、メインモジュールがあることを意味しますか?

テストケースの結果をテキストファイルにリダイレクトする際のサポートに感謝します。

よろしくお願いします!

4

1 に答える 1

6

Main実行可能ファイルを生成するには、モジュール(およびmainアクション)が必要です。モジュールの名前をに変更するか、コマンドラインでMain検討するモジュールを指定できます。Main

ghc --make -main-is AddAllTests AddAllTests.hs -o testResults.exe

。という名前のモジュールなしで実行可能ファイルを生成しますMain

コンパイルしない方法は

ghc AddAllTests.hs -e "main" > testResults.txt

もう1つの方法は、すべてのテストケースをリストするだけのファイルを作成することです。

3 + 2 :: Rational
reverse "foobar"
:q

ghciリダイレクトされた入力と出力で実行します

ghci < testCases > testResults.txt
于 2013-02-04T13:52:23.167 に答える