xref: /dokuwiki/_test/README (revision f8369d7d6e37248d6523fdac6e1d760fca4f1b52)
1*f8369d7dSTobias SarnowskiDokuWiki Test Suite
2*f8369d7dSTobias Sarnowski=============================================================================
3*f8369d7dSTobias Sarnowski
4*f8369d7dSTobias SarnowskiContent of this document:
5*f8369d7dSTobias Sarnowski
6*f8369d7dSTobias Sarnowski  * Requirements
7*f8369d7dSTobias Sarnowski  * Installation of PHPUnit via Pear
8*f8369d7dSTobias Sarnowski  * Running all Tests
9*f8369d7dSTobias Sarnowski  * Create new Tests
10*f8369d7dSTobias Sarnowski  * Known Bad Tests
11*f8369d7dSTobias Sarnowski  * TODO for test framework
12*f8369d7dSTobias Sarnowski
13*f8369d7dSTobias Sarnowski
14*f8369d7dSTobias Sarnowski
15*f8369d7dSTobias SarnowskiRequirements
16*f8369d7dSTobias Sarnowski-----------------------------------------------------------------------------
17*f8369d7dSTobias Sarnowski
18*f8369d7dSTobias Sarnowski  * PHP Unit 3.7
19*f8369d7dSTobias Sarnowski
20*f8369d7dSTobias Sarnowski
21*f8369d7dSTobias SarnowskiInstallation of PHPUnit via Pear
22*f8369d7dSTobias Sarnowski-----------------------------------------------------------------------------
23*f8369d7dSTobias Sarnowski
24*f8369d7dSTobias Sarnowski  > pear config-set auto_discover 1
25*f8369d7dSTobias Sarnowski  > pear upgrade
26*f8369d7dSTobias Sarnowski  > pear install pear.phpunit.de/PHPUnit
27*f8369d7dSTobias Sarnowski
28*f8369d7dSTobias Sarnowski
29*f8369d7dSTobias SarnowskiRunning all Tests
30*f8369d7dSTobias Sarnowski-----------------------------------------------------------------------------
31*f8369d7dSTobias Sarnowski
32*f8369d7dSTobias Sarnowski  > cd _testing/
33*f8369d7dSTobias Sarnowski  > phpunit
34*f8369d7dSTobias Sarnowski
35*f8369d7dSTobias SarnowskiPHPUnit will fail on some systems with the error 'headers already sent'. The
36*f8369d7dSTobias Sarnowskiknown workaround for that is to use the '--stderr' flag for PHPUnit:
37*f8369d7dSTobias Sarnowski
38*f8369d7dSTobias Sarnowski  > phpunit --stderr
39*f8369d7dSTobias Sarnowski
40*f8369d7dSTobias Sarnowski
41*f8369d7dSTobias SarnowskiCreate new Tests
42*f8369d7dSTobias Sarnowski-----------------------------------------------------------------------------
43*f8369d7dSTobias Sarnowski
44*f8369d7dSTobias SarnowskiTo create a test for DokuWiki, create a *.test.php file within the tests/
45*f8369d7dSTobias Sarnowskifolder. Please respect the folder structure and naming convention. Inside the
46*f8369d7dSTobias Sarnowskifile, implement a class, extending 'DokuWikiTest'. Every method, starting
47*f8369d7dSTobias Sarnowskiwith 'test' will be called as a test (e.g. 'testIfThisIsValid');
48*f8369d7dSTobias Sarnowski
49*f8369d7dSTobias Sarnowski
50*f8369d7dSTobias SarnowskiTODO for the test framework
51*f8369d7dSTobias Sarnowski-----------------------------------------------------------------------------
52*f8369d7dSTobias Sarnowski
53*f8369d7dSTobias Sarnowski  * test cross platform compatibility: especially test windows
54*f8369d7dSTobias Sarnowski  * update http://www.dokuwiki.org/devel:unittesting
55*f8369d7dSTobias Sarnowski  * optional: add helper methods to TestRequest for easy form submission
56*f8369d7dSTobias Sarnowski    * createForm(), ...
57*f8369d7dSTobias Sarnowski
58*f8369d7dSTobias Sarnowski
59*f8369d7dSTobias SarnowskiMigration Protocol
60*f8369d7dSTobias Sarnowski-----------------------------------------------------------------------------
61*f8369d7dSTobias Sarnowski
62*f8369d7dSTobias SarnowskiThe following tests were not migrated:
63*f8369d7dSTobias Sarnowski
64*f8369d7dSTobias Sarnowski  * inc/html_hilight (runkit)
65*f8369d7dSTobias Sarnowski  * inc/indexer_idx_indexlengths (fs dependencies)
66*f8369d7dSTobias Sarnowski  * inc/mail_send (integration test)
67*f8369d7dSTobias Sarnowski  * inc/parser/parser_formatting
68*f8369d7dSTobias Sarnowski  * inc/parser/xhtml_htmlphp (runkit)
69*f8369d7dSTobias Sarnowski  * inc/parser/xhtml_links
70*f8369d7dSTobias Sarnowski
71