gpt4 book ai didi

Haskell 堆栈未构建测试可执行文件

转载 作者:行者123 更新时间:2023-12-04 12:30:21 26 4
gpt4 key购买 nike

背景

我正在 Haskell 中构建一个日志文件解析器。我正在使用堆栈来构建它。运行 stack build命令工作愉快,我的项目编译。运行stack test但是,会产生以下错误:

parser-test: executable not found

我在错误消息上方看到以下警告,但我不知道如何避免它所指的重定向。
Warning: output was redirected with -o, but no output will be generated because there is no Main module.

相关文件

我还没有编写任何测试,所以测试文件是由 stack new 创建的。 .我的 cabal 文件如下所示:
...
category: Executable
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10

library
hs-source-dirs: src
exposed-modules: LogParser
build-depends: base >= 4.7 && < 5
, attoparsec
, bytestring
, old-locale
, time
default-language: Haskell2010

executable parser-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, attoparsec
, bytestring
, old-locale
, time
, parser
default-language: Haskell2010

test-suite parser-test
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
build-depends: base
, attoparsec
, bytestring
, hspec
, hspec-attoparsec
, old-locale
, time
, parser
ghc-options: -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010

source-repository head
type: git
...

我想我遗漏了一些东西,但我找不到我遗漏的文件记录在哪里。

期望的行为

我应该看到 Test suite not yet implemented stack documentation 中概述的消息.

最佳答案

test/Spec.hs的内容模板中的文件是:

main :: IO ()
main = putStrLn "Test suite not yet implemented"
您可以在 commercialhaskell/stack-templates 查看此内容在 new-template.hsfiles .
我不确定 module ParserSpec where 在哪里line 来自(在 the Github issue 中提出),但它不是模板的一部分。在我的系统上, stack new bar && cd bar && stack test成功。
至于 Main背后的原因模块要求:它来自 Cabal 库,据我了解,它是由于 Cabal 支持的其他编译器的限制而添加的。换句话说,GHC 在技术上可以允许此代码编译,但 Cabal 不会传入这些参数以保持与其他编译器的兼容性。

关于Haskell 堆栈未构建测试可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32465974/

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