cabal test结果与QuickCheck日志不一致问题求助
问题:Cabal测试返回PASS,但QuickCheck实际已找到反例
我写了一段QuickCheck测试代码,预期会在5次尝试后失败:
prop_varName :: VarName -> Bool prop_varName v = let s = content (getVarNameToken v) in length s <= 2 || isPrefixOf "a" s main :: IO () main = quickCheck prop_varName
但执行cabal test时,却返回错误的PASS结果:
$ cabal test # 为简洁省略部分内容... Build profile: -w ghc-9.8.1 -O1 Running 1 test suites... Test suite dhscanner-ast-test: RUNNING... Test suite dhscanner-ast-test: PASS Test suite logged to: dhscanner-ast-0.1.0.0-dhscanner-ast-test.log 1 of 1 test suites (1 of 1 test cases) passed.
查看测试日志时,却发现已经找到了反例:
$ sed -n "1,3p" dhscanner-ast-0.1.0.0-dhscanner-ast-test.log Test suite dhscanner-ast-test: RUNNING... *** Failed! Falsified (after 5 tests): VarName (Named {content = "U\SOH4@", location = ...})
附上完整的cabal文件(事后确认与问题无关):
cabal-version: 3.0 name: dhscanner-ast version: 0.1.0.0 -- synopsis: -- description: license: GPL-3.0-only license-file: LICENSE author: ******** maintainer: ***************@*****.com -- copyright: build-type: Simple extra-doc-files: CHANGELOG.md -- extra-source-files: common warnings ghc-options: -Wall library import: warnings exposed-modules: Ast, Token, Location -- other-modules: -- other-extensions: build-depends: base ^>=4.19.0.0, containers, aeson hs-source-dirs: src default-language: Haskell2010 test-suite dhscanner-ast-test import: warnings default-language: Haskell2010 -- other-modules: -- other-extensions: type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Main.hs build-depends: base ^>=4.19.0.0, dhscanner-ast, QuickCheck, random
注:此问题并非其他类似问题的重复。
内容的提问来源于stack exchange,提问作者OrenIshShalom
相关产品推荐
相关产品推荐

