0

更新:因此,在进一步挖掘之后,我实际上在 StackOverflow 上找到了一个解决方案(为制作重复的线程而道歉)。对于将来回顾这个的人来说,使用命令“cabal v2-install --lib HUnit”然后“cabal v2-repl”效果很好!这是帮助我的线程:Can't cabal install hunit

我目前正在尝试让 HUnit(用于 Haskell)与 Visual Studio Code 一起使用,但是,我遇到了我不知道它们的含义的错误。不幸的是,我已经在互联网上浏览了几个小时,但我真的找不到任何解决我问题的方法。如果有人对此有任何想法,我将不胜感激!我也遇到了专门为 Windows 寻找解决方案的问题,而且由于我是 Windows 用户,这一直是个很大的问题。

因此,问题是在我的文件夹中的带有 Haskell 文件的 powershell 中运行“cabal v2-repl”时出现以下问题:

Resolving dependencies...

cabal.exe: Could not resolve dependencies:

[__0] trying: PKDTicTacToe-0.1.0.0 (user goal)

[__1] unknown package: HUnit (dependency of PKDTicTacToe)

[__1] fail (backjumping, conflict set: HUnit, PKDTicTacToe)

我认为这与我的 .cabal 文件中的构建依赖项有关,所以这是我拥有的 .cabal 文件:

cabal-version:      2.4

name: PKDTicTacToe
version: 0.1.0.0
build-type: Simple

executable PKDTicTacToe
    main-is:          TestFile.hs
    build-depends:    HUnit, base^>=4.15.0.0
    hs-source-dirs:   .
    default-language: Haskell2010

我已经将它与其他人制作的其他项目进行了比较,从外观上看,似乎您只需要在“build-depends”中使用 HUnit 并将其导入“main-is”下所述的文件中(在我的情况下为 TestFile.hs)。所以在我的测试文件中,我基本上只是定义了我自己的 even 函数来测试它并分配了一些测试。虽然我不完全确定为什么会发生此问题,但我也会在下面显示此代码以防万一。

module TestFile(myEven) where 

import Test.HUnit

myEven :: Integer -> Bool
myEven x = if x `mod` 2 == 0 then True else False

test1 = TestCase $ assertEqual "Even 0" True (even 0)
test2 = TestCase $ assertEqual "Even 4" True (even 4)
test3 = TestCase $ assertEqual "Even 5" False (even 5)

performTests = runTestTT $ TestList [test1, test2, test3]

总而言之,我很新,不太确定这是如何工作的,所以非常感谢任何帮助!

4

0 回答 0