gpt4 book ai didi

haskell - 导入模块进行测试

转载 作者:行者123 更新时间:2023-11-28 19:57:55 25 4
gpt4 key购买 nike

我在导入模块进行测试时遇到了一些问题。我想在 TestLoad 中导入 Load 以测试它。我尝试将源目录添加到 hs-source-dirs 并将包 nsga 和模块 Load 添加到 build-依赖于测试包的 cabal 文件中的,但是当我尝试在 TestLoad.hs 中import Load 时,GHC 仍然提示 Could not find module Load

我也很好奇如何构建测试以及如何命名文件。以下方法是否正确?

目录结构:

nsga/
src/
Main.hs
Load.hs
test/
TestMain.hs
TestLoad.hs

cabal 文件:

executable nsga
main-is: Main.hs
build-depends:
QuickCheck -any,
base -any,
doctest -any
default-language: Haskell2010
hs-source-dirs: src
other-modules:
Load
ghc-options: -ferror-spans -Wall -fsimpl-tick-factor=10

test-suite test-nsga
type: exitcode-stdio-1.0
main-is: TestMain.hs
build-depends:
QuickCheck -any,
base -any,
doctest -any,
HUnit -any,
nsga -any,
Load -any
default-language: Haskell2010
hs-source-dirs: test, src
other-modules:
TestLoad
ghc-options: -ferror-spans

最佳答案

尝试从 build-depends 中删除 Load -any 行。

build-depends 指的是 packages 的名称,但是 Load.hs 是一个 module。您的系统上是否安装了名为 Load 的软件包?

FWIW,这对我有用:

文件布局:

├── app
│   ├── Load.hs
│   └── Main.hs
├── src
│   └── Lib.hs
├── test
│   └── Spec.hs
└── test-load.cabal

测试负载.cabal:

name:                test-load
version: 0.1.0.0
build-type: Simple
extra-source-files: README.md
cabal-version: >=1.10

executable the-app
default-language: Haskell2010
hs-source-dirs: app
main-is: Main.hs
build-depends: base

test-suite spec
default-language: Haskell2010
ghc-options: -Wall
type: exitcode-stdio-1.0
hs-source-dirs: test, app
main-is: Spec.hs
build-depends: base, Load -any

运行使用:

cabal configure
cabal build
cabal test

关于haskell - 导入模块进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37435107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com