[英]“Could not find module ‘Test.HUnit’” Error when executing Haskell's unittest (HUnit) in CodeRunner
我有Haskell的HUnit的簡單單元測試代碼。 我使用Mac OS X 10.10,並通過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在不同的Shell環境上啟動測試,這似乎是問題所在。 如果是這樣,需要添加哪些環境變量? 如果沒有,可能是什么原因引起的?
我還發現CodeRunner的ghc-pkg list
未在~/.ghc
中搜索包含HUnit的目錄。
/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
這是在shell中執行時的結果:
/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
,但是它不起作用。
問題是$HOME
設置更改。 我為CodeRunner使用了不同的$ HOME,但是Haskell搜索$ HOME / .cabal和$ HOME / .ghc作為已安裝的軟件包。
將$ HOME重置為正確的位置后,一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.