PytestSetting Project Test System
Jump to navigation
Jump to search
Internal
Install pytest
Install pytest
in the virtual environment associated with your project:
Layout
... └─ tests ├─ data ├─ util.py # get_file() └─ my_module └─ test_my_function.py
util.py
:
from pathlib import Path
def get_file(path_rel_to_data):
"""
Return the resolved path corresponding to path_rel_to_data, which is
relative to the test 'data' file. The function does not attempt to check
whether the file or directory exists.
try to resolve
:param path_rel_to_data:
:return: the resolved path
"""
return str(Path(Path(__file__).parent, './data/' + path_rel_to_data))
Environment
Add the path to the directory that contains the module to test (in this case ./src/main/python
contains my_module_to_test.py
). In case there is auxiliary code in the tests
directory, like util.py
, also add "./tests" to the path.
PYTHONPATH="$(dirname $0)/src:${PWD}/tests"
export PYTHONPATH
This can be added to .envrc
as follows:
PYTHONPATH="${PWD}/src:${PWD}/tests"
export PYTHONPATH
Structure of a Test File
import pytest
from pathlib import Path
from my_module_to_test import some_function
def get_test_file(file_name):
return Path(Path(__file__).parent, f'./data/{file_name}')