Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
>=0.4.22) and Vyper (
pytest, including trace-based coverage evaluation
The recommended way to install Brownie is via
pipx. pipx installs Brownie into a virtual environment and makes it available directly from the commandline. Once installed, you will never have to activate a virtual environment prior to using Brownie.
python3 -m pip install --user pipx python3 -m pipx ensurepath
To install Brownie using
pipx install eth-brownie
To upgrade to the latest version:
pipx upgrade eth-brownie
You can install the latest release via
pip install eth-brownie
You can clone the repository and use
setuptools for the most up-to-date version:
git clone https://github.com/eth-brownie/brownie.git cd brownie python3 setup.py install
To initialize a new Brownie project, start by creating a new folder. From within that folder, type:
brownie --help for basic usage information.
Brownie documentation is hosted at Read the Docs.
To run the tests, first install the developer dependencies:
pip install -r requirements-dev.txt
tox to run the complete suite against the full set of build targets, or
pytest to run tests against a specific version of Python. If you are using
pytest you must include the
-p no:pytest-brownie flag to prevent it from loading the Brownie plugin.
You can use a sandbox container provided in the
docker-compose.yml file for testing inside a Docker environment.
This container provides everything you need to test using a Python 3.6 interpreter.
Start the test environment:
docker-compose up -d
To open a session to the container:
docker-compose exec sandbox bash
To run arbitrary commands, use the
bash -c prefix.
docker-compose exec sandbox bash -c ''
For example, to run the tests in
docker-compose exec sandbox bash -c 'python -m pytest tests/convert/test_format_input.py'
Help is always appreciated! Feel free to open an issue if you find a problem, or a pull request if you've solved an issue.
This project is licensed under the MIT license.