fix:test: fix and improve pass-through of arguments to tasty [#2386]

This commit is contained in:
Simon Michael 2025-05-16 10:46:50 -10:00
parent 8f6a7c8a66
commit f7aa1fadd1
2 changed files with 16 additions and 11 deletions

View File

@ -474,9 +474,9 @@ testmode = hledgerCommandMode
[]
([], Just $ argsFlag "[-- TASTYOPTS]")
-- | The test command, which runs the hledger and hledger-lib
-- packages' unit tests. This command also accepts tasty test runner
-- options, written after a -- (double hyphen).
-- | The test command, which runs the hledger and hledger-lib packages' unit tests.
-- Arguments following a -- argument will be passed to the tasty test runner,
-- and any arguments before -- will be passed as test-selecting -p patterns.
--
-- Unlike most hledger commands, this one does not read the user's journal.
-- A 'Journal' argument remains in the type signature, but it should
@ -484,7 +484,11 @@ testmode = hledgerCommandMode
--
testcmd :: CliOpts -> Journal -> IO ()
testcmd opts _undefined = do
withArgs (listofstringopt "args" $ rawopts_ opts) $
let
args = listofstringopt "args" $ rawopts_ opts
(hledgerargs, tastyargs0) = break (== "--") args
tastyargs = dbg1 "tastyargs" $ ["-p " <> a | a <- hledgerargs] ++ drop 1 tastyargs0
withArgs tastyargs $
Test.Tasty.defaultMain $ testGroup "hledger" [
tests_Hledger
,tests_Hledger_Cli

View File

@ -16,11 +16,12 @@ sanity-check the installed hledger executable on your platform. All
tests are expected to pass - if you ever see a failure, please report
as a bug!
This command also accepts tasty test runner options, written after a
-- (double hyphen). Eg to run only the tests in Hledger.Data.Amount,
with ANSI colour codes disabled:
```cli
$ hledger test -- -pData.Amount --color=never
Any arguments before a `--` argument will be passed to the `tasty` test runner as test-selecting -p patterns,
and any arguments after `--` will be passed to tasty unchanged.
Examples:
```
$ hledger test # run all unit tests
$ hledger test balance # run tests with "balance" in their name
$ hledger test -- -h # show tasty's options
```
For help on these, see https://github.com/feuerbach/tasty#options
(`-- --help` currently doesn't show them).