diff --git a/tests/README.md b/tests/README.md index 0018e435..52820a6a 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1,37 +1,35 @@ # About testing Predis # -__ATTENTION__: Do not ever run this test suite against instances of Redis running -in production environments or containing data you are interested in! If you still -want to test this software on a production server without hitting the database, -please read ahead to undestand how to disable integration tests. +__ATTENTION__: Do not ever ever run this test suite against instances of Redis running in production +environments or containing data you are interested in! If you still want to test this library on a +production server without hitting the database, please read ahead about how to disable integration +tests. -Predis ships with a comprehensive test suite that uses __PHPUnit__ to cover every -aspect of the library. The suite is organized into several unit groups with the -PHPUnit `@group` annotation which makes it possible to run only selected groups -of tests. The main groups are: +Predis ships a comprehensive test suite that uses __PHPUnit__ to cover every aspect of the library. +The suite is organized into several unit groups with the PHPUnit `@group` annotation which makes it +possible to run only selected groups of tests. The main groups are: - - __disconnected__: generic tests that verify the correct behaviour of the - library without requiring an active connection to Redis. + - __disconnected__: generic tests verifying the correct behaviour of the library without requiring + an active connection to Redis. - __connected__: integration tests that require an active connection to Redis - __commands__: tests for the implementation of Redis commands. - - __slow__: tests that might slow down the execution of the test suite, they - can be either __connected__ or __disconnected__. + - __slow__: tests that might slow down the execution of the test suite (either __connected__ or + __disconnected__). A list of all the available groups in the suite can be obtained by running: ```bash $ phpunit --list-groups ``` -Groups of tests can be disabled or enabled via the XML configuration file or the -standard command-line test runner. Please note that due to a bug in PHPUnit, -older versions ignore the `--group` option when the group is excluded in the XML -configuration file. More details about this issue are available on [PHPUnit's bug -tracker](http://github.com/sebastianbergmann/phpunit/issues/320). -Certain groups of tests that require native extensions, such as `ext-curl` or -`ext-phpiredis`, are excluded by default in the XML configuration file. If you want -to test Predis using the phpiredis-based connection or against an instance of Webdis, -you should remove those groups of tests from the exclusion list in `phpunit.xml`. +Groups of tests can be disabled or enabled via the XML configuration file or the standard command +line test runner. Please note that due to a bug in PHPUnit, older versions ignore the `--group` +option when the group is excluded in the XML configuration file. More details about this issue are +available on [PHPUnit's bug tracker](http://github.com/sebastianbergmann/phpunit/issues/320). + +Certain groups of tests requiring native extensions, such as `ext-curl` or `ext-phpiredis`, are +disabled by default in the configuration file. To enable these groups of tests you should remove +them from the exclusion list in `phpunit.xml`. ### Combining groups for inclusion or exclusion with the command-line runner ### @@ -41,23 +39,19 @@ $ phpunit --group disconnected --exclude-group commands,slow ### Integration tests ### -The suite performs integration tests against a running instance of Redis (>= 2.4.0 -is required) to verify the correct behaviour of the implementation of each command -and certain abstractions implemented in Predis depending on them. These tests are -identified by the __connected__ group. +The suite performs integration tests against a running instance of Redis (>= 2.4.0) to verify the +correct behavior of the implementation of each command and certain abstractions implemented in the +library that depend on them. These tests are identified by the __connected__ group. -Integration tests for commands that are not defined in the specified server profile -(see the value of the `REDIS_SERVER_VERSION` constant in `phpunit.xml`) are marked -as __skipped__ automatically. +Integration tests for commands that are not defined in the specified server profile (see the value +of the `REDIS_SERVER_VERSION` constant in `phpunit.xml`) are marked as __skipped__ automatically. -By default, the test suite is configured to execute integration tests using the -server profile for Redis v2.4 (which is the current stable version of Redis). You -can optionally run the suite against a Redis instance built from the `unstable` -branch with the development profile by changing the `REDIS_SERVER_VERSION` to `dev` -in the `phpunit.xml` file. +By default, the test suite is configured to execute integration tests using the server profile for +Redis v2.8. You can run the suite against a Redis instance built from the `unstable` branch with the +development profile by changing the `REDIS_SERVER_VERSION` to `dev` in the `phpunit.xml` file. -If you do not have a Redis instance up and running or available for testing, you -can completely disable integration tests by excluding the __connected__ group: +If you do not have a Redis instance up and running or available for testing, you can completely +disable integration tests by excluding the __connected__ group: ```bash $ phpunit --exclude-group connected @@ -65,8 +59,8 @@ $ phpunit --exclude-group connected ### Slow tests ### -Certain tests can slow down the execution of the test suite. These tests can be disabled -by excluding the __slow__ group: +Certain tests can slow down the execution of the suite. These tests can be disabled by excluding the +__slow__ group: ```bash $ phpunit --exclude-group slow @@ -74,15 +68,15 @@ $ phpunit --exclude-group slow ### Testing Redis commands ### -We also provide an helper script in the `bin` directory that can be used to automatically -generate a file with the scheleton of a test case to test a Redis command by specifying -the name of the class in the `Predis\Command` namespace (only classes in this namespace -are considered valid). For example, to generate a test case for `SET` (represented by the -`Predis\Command\StringSet` class): +We also provide an helper script in the `bin` directory that can be used to automatically generate a +file with the scheleton of a test case to test a Redis command by specifying the name of the class +in the `Predis\Command` namespace (only classes in this namespace are considered valid). For example + to generate a test case for `SET` (represented by the `Predis\Command\StringSet` class): ```bash $ ./bin/create-command-test --class=StringSet ``` -Each command has its own realm (commands that operate on strings, lists, sets and such) -and this realm is automatically inferred from the name of the specified class. The realm -can be also specified manually using the `--realm` option. + +Each command has its own realm (e.g. commands operating on strings, lists, sets and such) which is +automatically inferred from the name of the specified class. The realm can be also provided manually +leveraging the `--realm` option.