--- /dev/null
+System-wide installation
+========================
+
+A system-wide installation allows you to maintain a single copy of the testing
+tool set and use it for multiple test environments. Configuration is slightly
+more complex than the stand-alone installation but many people prefer the
+flexibility and ease-of-maintenance this setup provides.
+
+Overview
+--------
+
+To install the Drupal Extension globally:
+
+#. Install Composer
+#. Install the Drupal Extension in `/opt/drupalextension`
+#. Create an alias to the behat binary in `/usr/local/bin`
+#. Create your test folder
+
+Install Composer
+----------------
+
+Composer is a PHP dependency manager that will make sure all the pieces you
+need get installed. `Full directions for global installation
+<http://getcomposer.org/doc/00-intro.md#globally>`_ and more information can be
+found on the `Composer website <http://getcomposer.org/>`_.::
+
+ curl -sS https://getcomposer.org/installer |
+ php mv composer.phar /usr/local/bin/composer
+
+Install the Drupal Extension
+----------------------------
+
+#. Make a directory in /opt (or wherever you choose) for the Drupal Extension::
+
+ cd /opt/
+ sudo mkdir drupalextension
+ cd drupalextension/
+
+2. Create a file called `composer.json` and include the following:
+
+ .. literalinclude:: _static/snippets/composer.json
+ :language: javascript
+ :linenos:
+
+3. Run the install command::
+
+ sudo composer install
+
+ It will be a bit before you start seeing any output. It will also suggest
+ that you install additional tools, but they're not normally needed so you can
+ safely ignore that message.
+
+4. Test that your install worked by typing the following::
+
+ bin/behat --help
+
+ If you were successful, you'll see the help output.
+
+5. Make the binary available system-wide::
+
+ ln -s /opt/drupalextension/bin/behat /usr/local/bin/behat
+
+Set up tests
+------------
+
+1. Create the directory that will hold your tests. There is no technical
+ reason this needs to be inside the Drupal directory at all. It is best to
+ keep them in the same version control repository so that the tests match the
+ version of the site they are written for.
+
+ One clear pattern is to keep them in the sites folder as follows:
+
+ Single site: `sites/default/behat-tests`
+
+ Multi-site or named single site: `/sites/my.domain.com/behat-tests`
+
+2. Wherever you make your test folder, inside it create the behat.yml file:
+
+ .. literalinclude:: _static/snippets/behat-1.yml
+ :language: yaml
+ :linenos:
+
+3. Initialize behat. This creates the features folder with some basic things to
+ get you started::
+
+ bin/behat --init
+
+4. This will generate a FeatureContext.php file that looks like:
+
+ .. literalinclude:: _static/snippets/FeatureContext.php.inc
+ :language: php
+ :linenos:
+ :emphasize-lines: 12
+
+ This will make your FeatureContext.php aware of both the Drupal Extension and
+ the Mink Extension, so you'll be able to take advantage of their drivers and
+ step definitions and add your own custom step definitions here.
+ The FeatureContext.php file must be in the same directory as your behat.yml
+ file otherwise in step 5 you will get the following error:
+
+ [Behat\Behat\Context\Exception\ContextNotFoundException]
+ `FeatureContext` context class not found and can not be used.
+
+
+5. To ensure everything is set up appropriately, type::
+
+ behat -dl
+
+ You'll see a list of steps like the following, but longer, if you've
+ installed everything successfully:
+
+
+ .. code-block:: gherkin
+ :linenos:
+
+ default | Given I am an anonymous user
+ default | Given I am not logged in
+ default | Given I am logged in as a user with the :role role(s)
+ default | Given I am logged in as :name