Testing Locally Overview
We provide the ability to run the tests locally to make sure the CI/CD pipeline will pass without having to wait for the CI/CD to run.
The tests are provided by enabling the environment using Poetry to provide the Invoke commands to run the tests.
You can get the list of available Invoke commands available for running the tests after launching poetry shell.
❯ poetry shell
cli Launch a bash shell inside the running Nautobot container. createsuperuser Create a new Nautobot superuser account (default: “admin”), will prompt for password. debug Start Nautobot and its dependencies in debug mode. destroy Destroy all containers and volumes. integration Run all tests including integration tests lint Run linting tools makemigrations Perform makemigrations operation in Django. migrate Perform migrate operation in Django. nbshell Launch an interactive nbshell session. post-upgrade Performs Nautobot common post-upgrade operations using a single entrypoint. restart Gracefully restart all containers. start Start Nautobot and its dependencies in detached mode. stop Stop Nautobot and its dependencies. unit Run unit tests
To start the Nautobot services to run the integration tests against, run the invoke start command.
❯ invoke start
Starting Nautobot in detached mode...
Running docker-compose command "up --detach"
Creating network "nautobot_ansible_default" with the default driver
Creating nautobot_ansible_postgres_1 ... done
Creating nautobot_ansible_redis_1 ... done
Creating nautobot_ansible_nautobot_1 ... done
Creating nautobot_ansible_worker_1 ... done
You can then run invoke integration to run the integration tests against Nautobot.
❯ invoke integration
Using Environment Variables
You can use the following environment variables to test against different Python or Nautobot version.