mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-29 05:11:33 +03:00
924ec1c98d
As mentioned by netvor on IRC, the unbalanced transaction error was not too clear when postings all have the same sign. Some other wording has been clarified, and the main error message is now shown on multiple lines for readability (at the cost of predictability/grepability..) There's also a probably unnoticeable change: selecting which parts of the error to show is now based on display precisions (reusing the balanced check logic), rather than original precisions. |
||
---|---|---|
.. | ||
addons | ||
balance | ||
cli | ||
i18n | ||
journal | ||
register | ||
0unittests.test | ||
account-aliases.test | ||
accounts-sorting.test | ||
accounts.test | ||
add.test | ||
amount-rendering.test | ||
balancesheet.test | ||
cashflow.test | ||
close.test | ||
csv.test | ||
csvtest.sh | ||
descriptions.test | ||
forecast.test | ||
incomestatement.test | ||
notes.test | ||
payees.test | ||
pivot.test | ||
prices.test | ||
query-desc.test | ||
query-tag.test | ||
README.md | ||
rewrite.test | ||
roi.test | ||
sample.journal | ||
stats.test | ||
tags.test | ||
timeclock.test | ||
timedot.test |
hledger's functional tests. See also Contributor Guide: Tests.
These mainly test the hledger CLI and (indirectly) hledger-lib. They are organised roughly by component.
Running these requires shelltestrunner. Older test files are in format 1; newer ones use format 3 (preferred). Some tests invoke unix commands so will not run in a Windows CMD shell.
Run them all (also builds hledger):
make functest
See how the Makefile is invoking shelltestrunner:
$ make functest -n
stack build --fast hledger
(COLUMNS=80 stack exec -- shelltest --execdir -j16 --hide-successes --exclude=/_ -w `stack exec -- which hledger` tests \
&& echo functest PASSED) || (echo functest FAILED; false)
These are the most important:
COLUMNS=80
makes output independent of your terminal width.--execdir
runs each test within its own directory.-w `stack exec -- which hledger`
ensures you are testing the hledger executable that was just built.-j16
runs tests in parallel which is much faster.
Run only the tests matching a regular expression:
$ COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` tests -i balance-assertions.*19
:tests/journal/balance-assertions.test:19: [OK]
Test Cases Total
Passed 1 1
Failed 0 0
Total 1 1
Run only the tests in one file:
$ COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` tests/cli/query-args.test
:tests/cli/query-args.test:1: [OK]
:tests/cli/query-args.test:2: [OK]
:tests/cli/query-args.test:3: [OK]
Test Cases Total
Passed 3 3
Failed 0 0
Total 3 3
Run a test repeatedly as its file is changed:
$ ls tests/cli/query-args.test | entr bash -c "COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` tests/cli/query-args.test -i1"
:tests/cli/query-args.test:1: [OK]
Test Cases Total
Passed 1 1
Failed 0 0
Total 1 1
:tests/cli/query-args.test:1: [OK]
Test Cases Total
Passed 1 1
Failed 0 0
Total 1 1
C-c C-c
More shelltestrunner options:
$ shelltest --help