(tox-ini-file)= # `tox.ini` file The `tox.ini` file in your charm's root directory is a typical Tox configuration file. > See more: [Tox | Configuration](https://tox.wiki/en/latest/user_guide.html#configuration) This file is generated automatically by `charmcraft init` with the contents below: ```ini Copyright 2023 Ubuntu # See LICENSE file for licensing details. [tox] no_package = True skip_missing_interpreters = True env_list = format, lint, static, unit min_version = 4.0.0 [vars] src_path = {tox_root}/src tests_path = {tox_root}/tests ;lib_path = {tox_root}/lib/charms/operator_name_with_underscores all_path = {[vars]src_path} {[vars]tests_path} [testenv] set_env = PYTHONPATH = {tox_root}/lib:{[vars]src_path} PYTHONBREAKPOINT=pdb.set_trace PY_COLORS=1 pass_env = PYTHONPATH CHARM_BUILD_DIR MODEL_SETTINGS [testenv:format] description = Apply coding style standards to code deps = black ruff commands = black {[vars]all_path} ruff --fix {[vars]all_path} [testenv:lint] description = Check code against coding style standards deps = black ruff codespell commands = # if this charm owns a lib, uncomment "lib_path" variable # and uncomment the following line # codespell {[vars]lib_path} codespell {tox_root} ruff {[vars]all_path} black --check --diff {[vars]all_path} [testenv:unit] description = Run unit tests deps = pytest coverage[toml] -r {tox_root}/requirements.txt commands = coverage run --source={[vars]src_path} \ -m pytest \ --tb native \ -v \ -s \ {posargs} \ {[vars]tests_path}/unit coverage report [testenv:static] description = Run static type checks deps = pyright -r {tox_root}/requirements.txt commands = pyright {posargs} [testenv:integration] description = Run integration tests deps = pytest juju pytest-operator -r {tox_root}/requirements.txt commands = pytest -v \ -s \ --tb native \ --log-cli-level=INFO \ {posargs} \ {[vars]tests_path}/integration ```