Haskell 使用Cabal而不是diff和make的简单单元测试
我想重写Haskell应用程序的shell测试代码,以便只使用Haskell和Cabal。(为了便于携带) 当前的测试模式如下所示Haskell 使用Cabal而不是diff和make的简单单元测试,haskell,cabal,Haskell,Cabal,我想重写Haskell应用程序的shell测试代码,以便只使用Haskell和Cabal。(为了便于携带) 当前的测试模式如下所示 make -> binary -> ok or fail make test -> diff $(binary test-in) test-supposed-out -> 我想要点像这样的 cabal build -> binary
make -> binary -> ok or fail
make test -> diff $(binary test-in) test-supposed-out ->
我想要点像这样的
cabal build -> binary -> ok or fail
cabal test -> ...testing with test-in and test-supposed-out... ->
请问最简单的方法是什么
谢谢。是一个简单而通用的框架,可以在其中运行各种测试。(我主要使用it测试,如果您还没有使用,我强烈建议您也检查一下。)
你所询问的特定类型的测试被称为(至少在Tasty中是这样)黄金测试。例如,如果要测试的程序
module ComplicatedProc where
import System.IO
import System.Environment (getArgs)
complicatedProc :: String -> Handle -> IO ()
complicatedProc input outHandle = do
hPutStr outHandle $ drop 37 input ++ take 46 input
main :: IO ()
main = do
[inpFp] <- getArgs
input <- readFile inpFp
complicatedProc input stdout
使用.cabal
文件,如
cabal-version: >=1.10
name: compli-algo
version: 5.7.6.8
build-type: Simple
-- ...
library
exposed-modules: ComplicatedProc
build-depends: base
default-language: Haskell2010
test-suite compli-algo-goldentest
main-is: golden.hs
type: exitcode-stdio-1.0
build-depends: base
, compli-algo
, tasty >=1.4 && <1.5
, tasty-golden >=2.3 && <2.4
hs-source-dirs: test
阴谋集团版本:>=1.10
姓名:康普利阿尔戈
版本:5.7.6.8
构建类型:简单
-- ...
图书馆
暴露模块:复杂的DPROC
构建取决于:基础
默认语言:Haskell 2010
测试套件compli algo goldentest
主要是:golden.hs
类型:exitcode-stdio-1.0
构建取决于:基础
,compli-algo
,美味>=1.4&&=2.3&&
cabal-version: >=1.10
name: compli-algo
version: 5.7.6.8
build-type: Simple
-- ...
library
exposed-modules: ComplicatedProc
build-depends: base
default-language: Haskell2010
test-suite compli-algo-goldentest
main-is: golden.hs
type: exitcode-stdio-1.0
build-depends: base
, compli-algo
, tasty >=1.4 && <1.5
, tasty-golden >=2.3 && <2.4
hs-source-dirs: test