Hi, all,
Here is a summary of the tck20 build issues. I would like to discuss this at the TCK conference call tomorrow (Friday).
The default build ("maven" or "maven build") compiles the code, enhances the pc classes, and runs the unit tests, which are the TCK tests. It expects to find everything either in the maven repository (typically ~/.maven/repository) or in test-classes. In theory, this is where the TCK tests would be run on the Reference Implementation.
We have customized the build with the goal "runtck" (and other goals). In theory, this is where an Implementation Under Test (iut) would be run. One of the features of this goal is that the user can parametrically select a configuration (currently application identity or datastore identity) to run the tests on, without having to recompile or re-enhance. The enhanced classes and metadata are stored in a jar file and the appropriate jar file is put on the classpath depending on the user-selected configuration. This ability to switch classpaths is not available with the default maven build.
In the near future we hope to upgrade the build so that all tests, or specified lists of tests, are run on all configurations automatically. We also will provide the ability to automatically create the database schema required for a particular set of tests and mapping, and to drop the schema after the tests have run. Users will be able to provide DDL scripts and connection information to run all tests on the database of their choice.
I think the basic question we need to answer is this:
Do we provide a limited unit test functionality with the default maven build? Or do we attempt to gracefully disable the unit test feature of the default build and require that users invoke a custom goal to run any tests?
Thanks to Michael Bouschen for clarifying my confusions about maven.
-- Michelle
