我正在尝试使用hspec。我有一个使用QuickCheck的工作案例,但是我想在运行cabal test
时获得更多详细信息。我从hspec中找到了this article,它给出了有关在运行可执行文件时提供一些更详细控制的说明。我目前正在使用hi
初始化haskell软件包,因此我的cabal测试套件如下所示:
Test-Suite spec
Type: exitcode-stdio-1.0
Default-Language: Haskell2010
Hs-Source-Dirs: src
, test
Ghc-Options: -Wall
Main-Is: Spec.hs
Build-Depends: base
, hspec
, QuickCheck
, quickcheck-instances
, mtl
, text
, transformers
我的猜测类似于“默认命令行参数”,但是感觉不对。如何为hspec套件提供参数?
同样,这可能很重要。
hi
拆分测试套件,以便Spec.hs
中唯一的内容是:{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
但是所有测试和代码都位于
test/MainSpec.hs
中,该文件会导出main
和spec
。 最佳答案
在http://hspec.github.io/hspec-discover.html上使用自定义主要功能部分 check out
为方便起见,将相关位复制到此处:
这是一个示例,显示了如何利用它来指定
不同的默认格式化程序:-- file test/Spec.hs
{-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}
-- file test/Main.hs
module Main where
import Test.Hspec.Runner
import Test.Hspec.Formatters
import qualified Spec
main :: IO ()
main = hspecWith defaultConfig {configFormatter = Just progress} Spec.spec