更新:因此,在进一步挖掘之后,我实际上在 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]
总而言之,我很新,不太确定这是如何工作的,所以非常感谢任何帮助!