gpt4 book ai didi

unit-testing - 使用 "stack test"时,我的 hspec 测试输出未着色

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

这是一件令人愤怒的事情,因为我已经构建了基于 Hspec 的测试套件,其中颜色都表现正常。但是在这个项目中,当我一次运行所有测试套件时,我无法让颜色出现。

我的 project.cabal 是这样设置的:

test-suite unit
type: exitcode-stdio-1.0
main-is: SpecMain.hs
hs-source-dirs: tests/unit
other-modules: WikiSpec
default-language: Haskell2010
ghc-options: -Wall -fno-warn-orphans -threaded
build-depends: base >=4.6
...

test-suite integration
type: exitcode-stdio-1.0
main-is: SpecMain.hs
hs-source-dirs: tests/integration, webapp
other-modules: ApiSpec
default-language: Haskell2010
ghc-options: -Wall -fno-warn-orphans -threaded
build-depends: base >=4.6
...

然后我的 SpecMain.hs 文件(相同)包含以下内容:
{-# OPTIONS_GHC -F -pgmF hspec-discover #-}

所以,当我运行 stack test ,我的所有测试都运行了,但输出没有着色。如果我运行 stack build --file-watch --test ,测试运行,但如果有任何失败,那么所有的输出都是红色的。最后,如果我运行 stack test weblog:unitstack test weblog:integration ,那么颜色最终会完全符合它们应有的样子。标题是白色的,通过的测试是绿色的,失败的测试是红色的,待定的测试是黄色的。

当我进行积极开发时,我倾向于依赖 stack build --file-watch --test ,但我真的需要正确的颜色。

你们有谁知道发生了什么,我该如何解决这个问题,或者我需要提供哪些额外信息?

最佳答案

默认情况下,hspec 只会在输出显示在 a terminal 时使用颜色。当环境变量TERM不是 "dumb" (或未设置)。除非您将环境变量设置为 "dumb" ,很可能是终端检测出了问题。

无论哪种方式,stack build使您能够使用 --test-arguments 的测试套件的参数, 和 hspec解释几个命令行参数,包括 --color--no-color覆盖默认行为。因此,您可以强制使用颜色:

stack test --file-watch --test-arguments "--color"

关于unit-testing - 使用 "stack test"时,我的 hspec 测试输出未着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121438/

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