On Monday, August 23, 2021 at 12:58:38 PM UTC-5 Edward K. Ream wrote:
`@test` and `@suite` nodes rank as one of the worst ideas I have ever had. They interfere with coverage tests...The support code in leoTest.py is wretchedly complex.
I am rewriting all of Leo's unit tests in the ekr-unit-tests branch. This work can't be part of Leo 6.4. In any case, the work will take at least several weeks.
The more I work on this project, the more revolted I am by @test and @suite. Moving to typical unit tests will eliminate multiple layers of cruft and complexity. On a more positive note, the new scheme will have the following benefits:
- Test files are separate from the code under test. This separation simplifies coverage testing.
- leoTest.py will completely disappear, as will support for @test and @suite in the mod_scripting plugin.
- unitTest.leo will go away.
- Most (all?) of the test files in leo/test will disappear.
At present, the new test files are in the leo/unittests subdirectory. Eventually, these tests are likely to migrate to the cleaned-out leo/test directory.
Summary
@test nodes, @suite nodes, and unitTest.leo (including several horrendous hacks therein) made Leo look bad. Moving to a proper unit testing scheme will simplify Leo and make full coverage testing possible.
Edward