On 05.08.2010, 20:37 Markus wrote:
- Where are the tests located? I suggest for core to put them into
maintenance/tests/selenium. That is where they are now. For extensions I propse a similar structure, that is <extensiondir>/tests/selenium.
- How are the tests organized? Tests are organized in testing
suites. Each suite represents a conhesive set of tests. So it is possible to have more than one test suite per extension / core area. Test suites are technically classes. The files should follow this naming convention: <NameOfExtension><[Subset]>TestSuite.php. The subset is optional. For example, in the PagedTiffHandler extension, it would be PagedTiffHandlerTestSuite.php and PagedTiffHandlerUploadsTestSuite.php. This should also be the name of the class. Alternatively, we could use the word "Selenium" somewhere in there in order to be able to divide between unit and selenium tests. In that case I suggest to use PagedTiffHandlerSeleniumTestSuite.php and PagedTiffHandlerUploadsSeleniumTestSuite.php. Hmmm... this gives pretty long names. Any suggestions?
- How does the framework know there are tests? The tests should be
registered with the autoloader in the extension entry file. In core, they should be registered directly with the autoloader.
I've already implemented a system allowing extensions to register their PHPUnit tests with UnitTestsList hook, and it's much more simple: a couple of lines on extension's side and one wfRunHooks() call in the test runner.