To improve the quality and stability of Sakai service code, it's essential that developers be able to easily create and maintain automated integration tests, using real implementations rather than mocked interfaces. Currently, the trunk contains two different approaches to integration test support, both of which are lacking.
- The Test Harness module was written to support traditional build-and-development cycle tests. Its tests can be run from the command line using Maven or from inside Eclipse. However, it doesn't take full advantage of recent advances in Spring and Maven, and configuration is overly complex and brittle.
- The more recent Test Runner module uses autowiring and other features to speed test setup and configuration. Its tests run inside an active Tomcat server, which is a maximally realistic scenario and can be useful for browser-controlled testing. However, it doesn't fit well into the usual rapid code-test-revise-retest cycle or into automatically error-checked builds.
A single Sakai test integration module should be able to support all three testing scenarios, and would be far easier to maintain and document. Given the agreed-upon importance of increasing test coverage in Sakai, I'm marking this as a critical task.
A follow-on task is to migrate existing Test Harness and Test Runner integration tests as needed.