diff --git a/admin/module/tests/README.md b/admin/module/tests/README.md index 3c05eeae92e7..be12d4c954c4 100644 --- a/admin/module/tests/README.md +++ b/admin/module/tests/README.md @@ -1,62 +1,81 @@ # Running Module Tests -This is the quick-start to CodeIgniter testing. Its intent is to describe what -it takes to set up your module and get it ready to run unit tests. -It is not intended to be a full description of the test features that you can +This is the quick-start to CodeIgniter testing. Its intent is to describe what +it takes to set up your module and get it ready to run unit tests. +It is not intended to be a full description of the test features that you can use to test your module. Those details can be found in the documentation. ## Resources + * [CodeIgniter 4 User Guide on Testing](https://codeigniter4.github.io/userguide/testing/index.html) -* [PHPUnit docs](https://phpunit.readthedocs.io/en/8.5/index.html) +* [PHPUnit docs](https://phpunit.de/documentation.html) +* [Any tutorials on Unit testing in CI4?](https://forum.codeigniter.com/showthread.php?tid=81830) ## Requirements -It is recommended to use the latest version of PHPUnit. At the time of this -writing we are running version 8.5.13. Support for this has been built into the -**composer.json** file that ships with CodeIgniter and can easily be installed +It is recommended to use the latest version of PHPUnit. At the time of this +writing we are running version 9.x. Support for this has been built into the +**composer.json** file that ships with CodeIgniter and can easily be installed via [Composer](https://getcomposer.org/) if you don't already have it installed globally. - > composer install +```console +> composer install +``` -If running under OS X or Linux, you can create a symbolic link to make running tests a touch nicer. +If running under macOS or Linux, you can create a symbolic link to make running tests a touch nicer. - > ln -s ./vendor/bin/phpunit ./phpunit +```console +> ln -s ./vendor/bin/phpunit ./phpunit +``` -You also need to install [XDebug](https://xdebug.org/index.php) in order -for code coverage to be calculated successfully. +You also need to install [XDebug](https://xdebug.org/docs/install) in order +for code coverage to be calculated successfully. After installing `XDebug`, you must add `xdebug.mode=coverage` in the **php.ini** file to enable code coverage. ## Setting Up -A number of the tests use a running database. -In order to set up the database edit the details for the `tests` group in -**phpunit.xml**. Make sure that you provide a database engine that is currently running -on your machine. More details on a test database setup are in the -*Docs>>Testing>>Testing Your Database* section of the documentation. +A number of the tests use a running database. +In order to set up the database edit the details for the `tests` group in +**phpunit.xml**. +Make sure that you provide a database engine that is currently running on your machine. +More details on a test database setup are in the +[Testing Your Database](https://codeigniter4.github.io/userguide/testing/database.html) section of the documentation. ## Running the tests The entire test suite can be run by simply typing one command-line command from the main directory. - > ./phpunit +```console +> ./phpunit +``` + +If you are using Windows, use the following command. + +```console +> vendor\bin\phpunit +``` -You can limit tests to those within a single test directory by specifying the -directory name after phpunit. +You can limit tests to those within a single test directory by specifying the +directory name after phpunit. - > ./phpunit app/Models +```console +> ./phpunit tests/Models +``` ## Generating Code Coverage -To generate coverage information, including HTML reports you can view in your browser, -you can use the following command: +To generate coverage information, including HTML reports you can view in your browser, +you can use the following command: - > ./phpunit --colors --coverage-text=tests/coverage.txt --coverage-html=tests/coverage/ -d memory_limit=1024m +```console +> ./phpunit --colors --coverage-text=tests/coverage.txt --coverage-html=tests/coverage/ -d memory_limit=1024m +``` -This runs all of the tests again collecting information about how many lines, -functions, and files are tested. It also reports the percentage of the code that is covered by tests. -It is collected in two formats: a simple text file that provides an overview as well -as a comprehensive collection of HTML files that show the status of every line of code in the project. +This runs all of the tests again collecting information about how many lines, +functions, and files are tested. It also reports the percentage of the code that is covered by tests. +It is collected in two formats: a simple text file that provides an overview as well +as a comprehensive collection of HTML files that show the status of every line of code in the project. -The text file can be found at **tests/coverage.txt**. +The text file can be found at **tests/coverage.txt**. The HTML files can be viewed by opening **tests/coverage/index.html** in your favorite browser. ## PHPUnit XML Configuration @@ -67,7 +86,7 @@ do not have your own configuration file in the project root. The normal practice would be to copy ``phpunit.xml.dist`` to ``phpunit.xml`` (which is git ignored), and to tailor it as you see fit. -For instance, you might wish to exclude database tests, or automatically generate +For instance, you might wish to exclude database tests, or automatically generate HTML code coverage reports. ## Test Cases diff --git a/admin/starter/tests/README.md b/admin/starter/tests/README.md index 9d20661afecd..473d0f8c140e 100644 --- a/admin/starter/tests/README.md +++ b/admin/starter/tests/README.md @@ -1,72 +1,81 @@ # Running Application Tests -This is the quick-start to CodeIgniter testing. Its intent is to describe what -it takes to set up your application and get it ready to run unit tests. -It is not intended to be a full description of the test features that you can +This is the quick-start to CodeIgniter testing. Its intent is to describe what +it takes to set up your application and get it ready to run unit tests. +It is not intended to be a full description of the test features that you can use to test your application. Those details can be found in the documentation. ## Resources * [CodeIgniter 4 User Guide on Testing](https://codeigniter4.github.io/userguide/testing/index.html) * [PHPUnit docs](https://phpunit.de/documentation.html) +* [Any tutorials on Unit testing in CI4?](https://forum.codeigniter.com/showthread.php?tid=81830) ## Requirements -It is recommended to use the latest version of PHPUnit. At the time of this -writing we are running version 9.x. Support for this has been built into the -**composer.json** file that ships with CodeIgniter and can easily be installed +It is recommended to use the latest version of PHPUnit. At the time of this +writing we are running version 9.x. Support for this has been built into the +**composer.json** file that ships with CodeIgniter and can easily be installed via [Composer](https://getcomposer.org/) if you don't already have it installed globally. - > composer install +```console +> composer install +``` -If running under OS X or Linux, you can create a symbolic link to make running tests a touch nicer. +If running under macOS or Linux, you can create a symbolic link to make running tests a touch nicer. - > ln -s ./vendor/bin/phpunit ./phpunit +```console +> ln -s ./vendor/bin/phpunit ./phpunit +``` -You also need to install [XDebug](https://xdebug.org/index.php) in order -for code coverage to be calculated successfully. +You also need to install [XDebug](https://xdebug.org/docs/install) in order +for code coverage to be calculated successfully. After installing `XDebug`, you must add `xdebug.mode=coverage` in the **php.ini** file to enable code coverage. ## Setting Up -A number of the tests use a running database. -In order to set up the database edit the details for the `tests` group in -**app/Config/Database.php** or **phpunit.xml**. Make sure that you provide a database engine -that is currently running on your machine. More details on a test database setup are in the +A number of the tests use a running database. +In order to set up the database edit the details for the `tests` group in +**app/Config/Database.php** or **phpunit.xml**. +Make sure that you provide a database engine that is currently running on your machine. +More details on a test database setup are in the [Testing Your Database](https://codeigniter4.github.io/userguide/testing/database.html) section of the documentation. -If you want to run the tests without using live database you can -exclude @DatabaseLive group. Or make a copy of **phpunit.dist.xml** - -call it **phpunit.xml** - and comment out the named "database". This will make -the tests run quite a bit faster. - ## Running the tests The entire test suite can be run by simply typing one command-line command from the main directory. - > ./phpunit +```console +> ./phpunit +``` If you are using Windows, use the following command. - > vendor\bin\phpunit +```console +> vendor\bin\phpunit +``` -You can limit tests to those within a single test directory by specifying the -directory name after phpunit. +You can limit tests to those within a single test directory by specifying the +directory name after phpunit. - > ./phpunit app/Models +```console +> ./phpunit app/Models +``` ## Generating Code Coverage -To generate coverage information, including HTML reports you can view in your browser, -you can use the following command: +To generate coverage information, including HTML reports you can view in your browser, +you can use the following command: - > ./phpunit --colors --coverage-text=tests/coverage.txt --coverage-html=tests/coverage/ -d memory_limit=1024m +```console +> ./phpunit --colors --coverage-text=tests/coverage.txt --coverage-html=tests/coverage/ -d memory_limit=1024m +``` -This runs all of the tests again collecting information about how many lines, -functions, and files are tested. It also reports the percentage of the code that is covered by tests. -It is collected in two formats: a simple text file that provides an overview as well -as a comprehensive collection of HTML files that show the status of every line of code in the project. +This runs all of the tests again collecting information about how many lines, +functions, and files are tested. It also reports the percentage of the code that is covered by tests. +It is collected in two formats: a simple text file that provides an overview as well +as a comprehensive collection of HTML files that show the status of every line of code in the project. -The text file can be found at **tests/coverage.txt**. +The text file can be found at **tests/coverage.txt**. The HTML files can be viewed by opening **tests/coverage/index.html** in your favorite browser. ## PHPUnit XML Configuration @@ -77,7 +86,7 @@ do not have your own configuration file in the project root. The normal practice would be to copy ``phpunit.xml.dist`` to ``phpunit.xml`` (which is git ignored), and to tailor it as you see fit. -For instance, you might wish to exclude database tests, or automatically generate +For instance, you might wish to exclude database tests, or automatically generate HTML code coverage reports. ## Test Cases diff --git a/tests/README.md b/tests/README.md index 40755f1b65c6..5a7ddbbbed72 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1,36 +1,47 @@ # Running System Tests -This is the quick-start to CodeIgniter testing. Its intent is to describe what -it takes to set up your system and get it ready to run unit tests. -It is not intended to be a full description of the test features that you can -use to test your application. Those details can be found in the documentation. +This is the quick-start to CodeIgniter testing. Its intent is to describe what +it takes to set up your system and get it ready to run unit tests. +It is not intended to be a full description of the test features that you can +use to test your application. Those details can be found in the documentation. + +## Resources + +* [CodeIgniter 4 User Guide on Testing](https://codeigniter4.github.io/userguide/testing/index.html) +* [PHPUnit docs](https://phpunit.de/documentation.html) +* [Any tutorials on Unit testing in CI4?](https://forum.codeigniter.com/showthread.php?tid=81830) ## Requirements -It is recommended to use the latest version of PHPUnit. At the time of this -writing we are running version 9.x. Support for this has been built into the -**composer.json** file that ships with CodeIgniter and can easily be installed +It is recommended to use the latest version of PHPUnit. At the time of this +writing we are running version 9.x. Support for this has been built into the +**composer.json** file that ships with CodeIgniter and can easily be installed via [Composer](https://getcomposer.org/) if you don't already have it installed globally. - > composer install +```console +> composer install +``` -If running under OS X or Linux, you can create a symbolic link to make running tests a touch nicer. +If running under macOS or Linux, you can create a symbolic link to make running tests a touch nicer. - > ln -s ./vendor/bin/phpunit ./phpunit +```console +> ln -s ./vendor/bin/phpunit ./phpunit +``` You also need to install [XDebug](https://xdebug.org/docs/install) in order for code coverage to be calculated successfully. After installing `XDebug`, you must add `xdebug.mode=coverage` in the **php.ini** file to enable code coverage. ## Setting Up -A number of the tests use a running database. -In order to set up the database edit the details for the `tests` group in -**app/Config/Database.php** or **phpunit.xml**. Make sure that you provide a database engine -that is currently running on your machine. More details on a test database setup are in the +A number of the tests use a running database. +In order to set up the database edit the details for the `tests` group in +**app/Config/Database.php** or **phpunit.xml**. +Make sure that you provide a database engine that is currently running on your machine. +More details on a test database setup are in the [Testing Your Database](https://codeigniter4.github.io/CodeIgniter4/testing/database.html) section of the documentation. -If you want to run the tests without using live database you can -exclude `@DatabaseLive` group. Or make a copy of **phpunit.dist.xml** - +If you want to run the tests without using live database you can +exclude `@DatabaseLive` group. Or make a copy of **phpunit.dist.xml** - call it **phpunit.xml** - and comment out the `` named `Database`. This will make the tests run quite a bit faster. @@ -38,38 +49,50 @@ the tests run quite a bit faster. The entire test suite can be run by simply typing one command-line command from the main directory. - > ./phpunit +```console +> ./phpunit +``` If you are using Windows, use the following command. - > vendor\bin\phpunit +```console +> vendor\bin\phpunit +``` -You can limit tests to those within a single test directory by specifying the +You can limit tests to those within a single test directory by specifying the directory name after phpunit. All core tests are stored under **tests/system**. - > ./phpunit tests/system/HTTP/ +```console +> ./phpunit tests/system/HTTP/ +``` Individual tests can be run by including the relative path to the test file. - > ./phpunit tests/system/HTTP/RequestTest.php +```console +> ./phpunit tests/system/HTTP/RequestTest.php +``` You can run the tests without running the live database and the live cache tests. - > ./phpunit --exclude-group DatabaseLive,CacheLive +```console +> ./phpunit --exclude-group DatabaseLive,CacheLive +``` ## Generating Code Coverage -To generate coverage information, including HTML reports you can view in your browser, -you can use the following command: +To generate coverage information, including HTML reports you can view in your browser, +you can use the following command: - > ./phpunit --colors --coverage-text=tests/coverage.txt --coverage-html=tests/coverage/ -d memory_limit=1024m +```console +> ./phpunit --colors --coverage-text=tests/coverage.txt --coverage-html=tests/coverage/ -d memory_limit=1024m +``` -This runs all of the tests again collecting information about how many lines, -functions, and files are tested. It also reports the percentage of the code that is covered by tests. -It is collected in two formats: a simple text file that provides an overview as well -as a comprehensive collection of HTML files that show the status of every line of code in the project. +This runs all of the tests again collecting information about how many lines, +functions, and files are tested. It also reports the percentage of the code that is covered by tests. +It is collected in two formats: a simple text file that provides an overview as well +as a comprehensive collection of HTML files that show the status of every line of code in the project. -The text file can be found at **tests/coverage.txt**. +The text file can be found at **tests/coverage.txt**. The HTML files can be viewed by opening **tests/coverage/index.html** in your favorite browser. ## PHPUnit XML Configuration @@ -80,5 +103,5 @@ do not have your own configuration file in the project root. The normal practice would be to copy ``phpunit.xml.dist`` to ``phpunit.xml`` (which is git ignored), and to tailor it as you see fit. -For instance, you might wish to exclude database tests, or automatically generate +For instance, you might wish to exclude database tests, or automatically generate HTML code coverage reports.