Haskell Test.Framework 从命令行指定 运行 的测试次数

Haskell Test.Framework specify number of tests to run from command line

documentation 意味着 Test.Framework 可以是带有命令行参数的 运行。有函数 defaultMain :: [Test] -> IO () 还有函数 defaultMainWithOpts :: [Test] -> RunnerOptions -> IO ()

A version of defaultMain that lets you ignore the command line arguments in favour of an explicit set of RunnerOptions.

我找不到关于如何传递命令行参数的文档,无法识别选项的错误消息只显示 "unrecognized option"。所以我的问题是如何在 运行ning cabal test

时从命令行将测试用例的数量传递给 运行

defaultMainWithOpts 不适用于命令行用法:它会忽略并抑制所有命令行选项。要在命令行上进行测试,您应该使用 defaultMain 并且 --help 会告诉您所有可用的选项,例如:

Usage: cc-test [OPTIONS]
                   --help                                       show this help message
  -j NUMBER        --threads=NUMBER                             number of threads to use to run tests
                   --test-seed=NUMBER|random                    default seed for test random number generator
  -a NUMBER        --maximum-generated-tests=NUMBER             how many automated tests something like QuickCheck should try, by default
                   --maximum-unsuitable-generated-tests=NUMBER  how many unsuitable candidate tests something like QuickCheck should endure before giving up, by default
  -s NUMBER        --maximum-test-size=NUMBER                   to what size something like QuickCheck should test the properties, by default
  -d NUMBER        --maximum-test-depth=NUMBER                  to what depth something like SmallCheck should test the properties, by default
  -o NUMBER        --timeout=NUMBER                             how many seconds a test should be run for before giving up, by default
                   --no-timeout                                 specifies that tests should be run without a timeout, by default
  -l               --list-tests                                 list available tests but don't run any; useful to guide subsequent --select-tests
  -t TEST-PATTERN  --select-tests=TEST-PATTERN                  only tests that match at least one glob pattern given by an instance of this argument will be run
                   --jxml=FILE                                  write a JUnit XML summary of the output to FILE
                   --jxml-nested                                use nested testsuites to represent groups in JUnit XML (not standards compliant)
                   --plain                                      do not use any ANSI terminal features to display the test run
                   --color                                      use ANSI terminal features to display the test run
                   --hide-successes                             hide sucessful tests, and only show failures