gpt4 book ai didi

haskell - 测试 Main 模块中定义的 Haskell 代码

转载 作者:行者123 更新时间:2023-11-28 19:44:17 26 4
gpt4 key购买 nike

我正在寻求有关如何为 Main 模块中定义的 Haskell 代码编写测试的帮助。

我要测试的项目是一个 cabal 包,我在其中定义了多个可执行文件。每个可执行代码都声明为仅由一个文件组成(每个项目欧拉问题一个),我通常使用 cabal run 命令单独运行它们。

我尝试编写一个测试,也在主模块中,但是在编译时,找不到我要测试的函数(“不在范围内”错误)。

在这种情况下,编写测试的正确方法是什么?

有关信息,下面是我的项目的目录布局:

pe/                     # root
pe.cabal
src/
Util.hs
Problem001.hs # "module Main where" and declares a main function
Problem002.hs # "module Main where" and declares a main function
(...)
test/
TestProblem001.hs # "module Main where" and declares a main function

以下是 pe.cabal 的摘录:

test-suite test-all
hs-source-dirs: test
type: exitcode-stdio-1.0
main-is: TestProblem001.hs
build-depends: base, HUnit, Cabal >= 1.9.2

executable problem-001
hs-source-dirs: src
main-is: Problem001.hs
build-depends: base
ghc-options: -Wall -Werror -O2

[编辑]

由于我找不到任何资源来满足这个确切的要求,我选择了一个更容易测试的项目架构:问题被定义为库而不是单独的可执行文件。

最佳答案

我这样做

test1 = ...
test2 = ...
main = do
args <- getArgs
case args of
... -> check test1
... -> check test2

关于haskell - 测试 Main 模块中定义的 Haskell 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296355/

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