[[development]]
== Development

[discrete]
=== Run Stack locally

A rake task is included to run the Elastic Enterprise Search stack locally via Docker:

[source,bash]
----------------------------
$ rake stack[7.10.0]
----------------------------

This will run Elastic Enterprise Search in http://localhost:3002
- Username: `enterprise_search`
- Password: `changeme`

[discrete]
=== Run Tests

Unit tests for the clients:

[source,bash]
----------------------------
$ rake spec:client
----------------------------

Integration tests: you need to have an instance of Enterprise Search running either locally or remotely, and specify the host and credentials in environment variables (see below for a complete dockerized setup). If you're using the included rake task `rake stack[:version]`, you can run the integration tests with the following command:

[source,bash]
----------------------------
$ ELASTIC_ENTERPRISE_HOST='http://localhost:3002' \
  ELASTIC_ENTERPRISE_USER='elastic' \
  ELASTIC_ENTERPRISE_PASSWORD='changeme' \
  rake spec:integration
----------------------------

Run integration tests completely within containers, the way we run them on our CI:
[source,bash]
----------------------------
RUNSCRIPTS=enterprise-search STACK_VERSION=7.10.0 ./.ci/run-tests
----------------------------
