2

Haskell の HUnit の単純な単体テスト コードがあります。私は Mac OS X 10.10 を使用しており、HUnit を でインストールしましたcabal install hunit

module TestSafePrelude where

import SafePrelude( safeHead )
import Test.HUnit

testSafeHeadForEmptyList :: Test
testSafeHeadForEmptyList = 
    TestCase $ assertEqual "Should return Nothing for empty list"
                           Nothing (safeHead ([]::[Int]))

testSafeHeadForNonEmptyList :: Test
testSafeHeadForNonEmptyList =
    TestCase $ assertEqual "Should return (Just head) for non empty list" (Just 1)
               (safeHead ([1]::[Int]))

main :: IO Counts
main = runTestTT $ TestList [testSafeHeadForEmptyList, testSafeHeadForNonEmptyList]

結果を得るためにそれを実行できrunhaskell TestSafePrelude.hsます:

Cases: 2  Tried: 2  Errors: 0  Failures: 0
Counts {cases = 2, tried = 2, errors = 0, failures = 0}

しかし、Code Runnerで実行すると、HUnit モジュールが見つからないというエラー メッセージが表示されます。

ここに画像の説明を入力

CodeRunner は別のシェル環境でテストを開始しますが、これが問題のようです。もしそうなら、どの環境変数を追加する必要がありますか? そうでない場合、何が問題を引き起こしている可能性がありますか?

ここに画像の説明を入力

ghc-pkg listまた、CodeRunner から HUnit を含むディレクトリを検索しないこともわかり~/.ghcました。

/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/package.conf.d:
    Cabal-1.18.1.4
    array-0.5.0.0
    ...
    xhtml-3000.2.1

これは、シェルで実行したときの結果です。

/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/package.conf.d
   Cabal-1.18.1.4
   array-0.5.0.0
   ...
/Users/smcho/.ghc/x86_64-darwin-7.8.3/package.conf.d
   ...
   HUnit-1.2.5.2
   ...
   zlib-0.5.4.2

~/.cabalパスにとの両方を追加~/.ghcしましたが、機能しません。

4

1 に答える 1