mirror of
https://github.com/predis/predis.git
synced 2026-08-25 00:19:39 +00:00
Update testing README.
[ci skip]
This commit is contained in:
+39
-45
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user