Here is the recommended workflow:
- Fork this repository, github.com/rabbitmq/amqp091-go
- Create your feature branch (
git checkout -b my-new-feature
) - Run Static Checks
- Run integration tests (see below)
- Implement tests
- Implement fixes
- Commit your changes. Use a good, descriptive, commit message.
- Push to a branch (
git push -u origin my-new-feature
) - Submit a pull request
golangci-lint must be installed to run the static checks. See installation docs for more information.
The static checks can be run via:
make checks
Running the Integration tests require:
- A running RabbitMQ node with all defaults: https://www.rabbitmq.com/download.html
- That the server is either reachable via
amqp://guest:[email protected]:5672/
or the environment variableAMQP_URL
set to it's URL (e.g.:export AMQP_URL="amqp://guest:verysecretpasswd@rabbitmq-host:5772/
)
The integration tests can be run via:
make tests
Some tests require access to rabbitmqctl
CLI. Use the environment variable
RABBITMQ_RABBITMQCTL_PATH=/some/path/to/rabbitmqctl
to run those tests.
If you have Docker available in your machine, you can run:
make tests-docker
This target will start a RabbitMQ container, run the test suite with the environment variable setup, and stop RabbitMQ container after a successful run.
All integration tests should use the integrationConnection(...)
test
helpers defined in integration_test.go
to setup the integration environment
and logging.