From: Egon Willighagen <e.willighagen@sc...> - 2006-04-09 13:25:32
with the library getting more and more modularized, and the growing number of
failing test *, I thought it would be time for modularizing the junit testing
too. The idea here is that each CDK module comes with one test module. For
example, the module 'core' now has a corresponding test module 'test-core'.
As an intermezzo, a few examples why modules are important and very useful,
and complement the java package, which also organize our java classes:
1. CDK interfaces: interfaces are shattered over more than one java package
2. CDK experimental: this is sort of a playground where we can experiment with
3. CDK obsolete: code that the CDK project no longer can maintain **
4. CDK java3d: code that depends on a specific library which not everyone will
As part of the quality control I'm working on, this is the last step to give
statistics on the quality of each module. Earlier I implemented this for the
required JavaDoc and source code quality. And now I can give module based
statistics for the number of failing JUnit tests too.
Somewhere in May I will setup up autogenerated webpages showing these
statistics. See the email archives on how they can be generated manually
using the ant build scripts in SVN.
Ok, the run all test modules, run:
ant clean runDoclet dist-all test-dist-all
or, as before:
ant clean test-all
(just like before)
Additionally, you can run them individually using (after having compiled them
ant -Dmodule=core test-module
This latter is convenient if fixing a bug in one of the classes. BUT, run 'ant
clean test-all' before commiting in *all* cases.
OK, not all CDK modules have a corresponding test module yet, but I will
complete extracting the modules from test-extra as soon as possible if module
maintainers do not do that themselves.
Here are the new JUnit failure/error statistics:
tests run failure error
core 60 0 0
data 540 1 0
standard 103 0 1
io 168 2 0
extra 961 8 0
reaction 16 0 8
experimental 32 3 0
1880 14 9
*: yes, code maintainance is a growing problem with a growing library! and
yes, I still need one or two volunteers to help maintain the library! this is
your chance for (CDK) glory!
**: e.g. because the code is too difficult to read and the original author no
longer has time to support it.
PhD student on Molecular Representation in Chemometrics
Radboud University Nijmegen