Table of Contents
Testing System
This idea has been implemented |
---|
Currently we are using a testing system based upon Simple Test. However there are currently some limitations:
- All tests are run in the same context, there is no way to run each test case really isolated
- well, you can run a test isolated manually, but there's no way to run all tests but have each run in it's own context and environment
- There is no real testing environment with a different configuration, different data directories etc.
We would like to have the following new features:
- A testing environment with a data directory that has a defined state when the test starts. This could be inspired by the things that are suggested in farm for changing the data directory and either providing a PHP API for easily setting up an environment with a specific configuration and set of pages or by providing conf and data directories for each test. This environment should be cleaned after each test and there should be a default state that is restored.
- Integration of frontend testing
- Automated testing of new commits (Continuous Integration) would be nice, too
- maybe using generic-ci or something similar
Changing our whole testing system to use PHPUnit is an option for us.
We also have unittests for plugins and templates, they should of course also work with the new system.
Requirements
- You should know PHP and some JavaScript might help, too.
- You should be familiar or get familiar with testing.
Difficulty
Medium You should get familiar with the parts farm changes for the setup of the testing environment and need to get familiar with the different testing systems. The remaining part is probably rewriting existing tests to use the new system.
Continuous Integration
deprecated: https://github.com/dom-mel/dokuwiki/tree/phpunit is preparing phpunit usage which works greatly with generic-ci out-of-the box. The result can be watched here: http://dwbuilds.linesofcode.org/.
Mentors
The following people volunteered to “mentor” any new developers taking up this task by answering questions, giving tips and reviewing code:
Status
Unittests are performed today by PHPUnit. At http://test.dokuwiki.org/ are executed tests available for the master and not merged branches, including a code coverage report.