> On Aug 11, 2022, at 4:56 AM, Robert Simmons <rsimmo...@gmail.com> wrote:
>
> Looking at the code repo I see a directory of unit tests, but it doesn't
> look like it has actual unit tests. Do you all do continuous integration
> somewhere and have unit tests? When a software defect is identified and
> fixed, do you create a unit test based on the fix?
If you found only one directory of tests you didn't look very hard:
$ find * -name "*test*" -type d | wc -l
25
The tests are mixture of unit tests, fuzzers, and integration tests. You'll
notice that there are a lot more in the libgnucash/ core than in the UI-centric
gnucash/; that's in large part because the MVC violations we discussed a couple
of days ago make it difficult to write tests. That's actually part of a broader
problem, that the code isn't well separated for responsibilities so meaningful
unit tests aren't always possible.
There's a build target "check" to build and run all of the tests. We try to
keep the dependencies lined up so that building all isn't a prerequisite but
that occasionally gets out of whack so I generally use `ninja && ninja check`
to make sure.
CI is performed via Github actions, see
https://github.com/Gnucash/gnucash/tree/maint/.github/workflows.
Contrary to Derek's claim I'm afraid that none of us are sufficiently
self-disciplined enough to reliably add a test when we fix a bug. It does
happen from time to time, but tests are more often added when refactoring or
rewriting than when bug fixing.
Regards,
John Ralls
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel