diff --git a/_test/README b/_test/README index 5220248b2d5933a5dd7c91818bc87ed6b2a10a72..f0db2a550605910360f7bcf3a7bfb7d7b5e63f2d 100644 --- a/_test/README +++ b/_test/README @@ -9,35 +9,28 @@ This is the test suite to automatically test various parts of DokuWiki. ===== PHPUnit Installation ====== -==== via PEAR installer ==== +You can install phpunit through your distribution's package manager or simply +download the newest phar file into the _test directory: - pear config-set auto_discover 1 - pear install pear.phpunit.de/PHPUnit - -==== via Composer ==== - -Include a composer.json file in your project, which can be as minimal as: - -<code> -{ - "require-dev": { - "phpunit/phpunit": "3.7.*" - } -} -</code> - -==== via PHP archive (PHAR) ==== - -Download http://pear.phpunit.de/get/phpunit.phar and make it executable on your system. + cd _test/ + wget https://phar.phpunit.de/phpunit.phar ===== Running all tests ===== -Just change to the ''_test'' directory and run phpunit: +Just change to the ''_test'' directory and run phpunit (depending on your install +method): cd _test/ phpunit +or + + cd _test/ + php phpunit.phar + +===== Troubleshooting ===== + PHPUnit will fail on some systems with a //headers already sent// error. This is a known problem with PHPUnit, the error can be avoided by passing the '--stderr' flag to phpunit: @@ -46,8 +39,10 @@ This is a known problem with PHPUnit, the error can be avoided by passing the On windows you may have to enable OpenSSL support for https tests. Some of them point to httpclient_http.tests.php on the failure. -To enable HTTPS support copy the ''libeay32.dll'' and ''ssleay32.dll'' to your ''windows\system32'' folder -and add the following line to your php.ini in the extension section: +To enable HTTPS support copy the ''libeay32.dll'' and ''ssleay32.dll'' +to your ''windows\system32'' folder and add the following line to your php.ini +in the extension section: + <code ini> extension=php_openssl.dll </code> @@ -56,13 +51,13 @@ extension=php_openssl.dll You can run a single test file by providing it as an argument to phpunit: - phpunit --stderr tests/inc/common_cleanText.test.php + phpunit tests/inc/common_cleanText.test.php You can also use groups to exclude certain test from running. For example use the following command to avoid long running test or tests accessing the Internet. - phpunit --stderr --exclude-group slow,internet + phpunit --exclude-group slow,internet ===== Create new Tests ===== @@ -71,23 +66,10 @@ folder. Please respect the folder structure and naming convention. Inside the file, implement a class, extending 'DokuWikiTest'. Every method, starting with 'test' will be called as a test (e.g. 'testIfThisIsValid'); - ===== TODO for the test framework ===== - * test cross platform compatibility: especially test windows - * update http://www.dokuwiki.org/devel:unittesting * optional: add helper methods to TestRequest for easy form submission * createForm(), ... * check PHP Unit test_helpers https://github.com/sebastianbergmann/php-test-helpers -===== Migration Protocol ===== - -The following tests were not migrated: - - * inc/indexer_idx_indexlengths (fs dependencies) - * inc/mail_send (integration test) - * inc/parser/parser_formatting - * inc/parser/xhtml_htmlphp (runkit) - * inc/parser/xhtml_links - diff --git a/_test/phpunit.xml b/_test/phpunit.xml index fc7dd8be04074d31debbb55b6c5d6da9be674dee..25506b1ae3ff9eceffc47a18968dc0935a32dc06 100644 --- a/_test/phpunit.xml +++ b/_test/phpunit.xml @@ -1,7 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="bootstrap.php" - convertNoticesToExceptions="false"> + convertNoticesToExceptions="false" + colors="true" + stderr="true" + > <testsuites> <testsuite name="DokuWiki Tests">