Every ML project should have a set of automated tests to assess the quality, consistency and correctness of their application in a repeatable and reproducible manner.
This rule checks how many test files your project contains. In accordance with pytest’s conventions for Python tests, test files are Python files starting with test_ or ending with _test.py.
Per default, mllint expects at least one test file to be implemented in your project (i.e. a Python file starting with test_ or ending with _test.py)
and recommends that you have at least 1 test file for every 4 non-test files, though both these targets are configurable.
In order to configure different targets for how many tests a project should have, use the following mllint configuration snippet:
testing:
report: tests-report.xml # JUnit report for rule testing/pass
# Specify targets for testing/has-tests.
# Both the minimum required amount of tests as well as the desired ratio of tests to other Python files will be checked.
targets:
# Minimum number of tests expected to be in your project. Default: 1
minimum: 1
# Define a target ratio of Python test files to other Python files in your project.
# By default, mllint expects that 20% of all Python files in your project are tests,
# i.e., 1 test file is implemented for every 4 other Python files.
ratio:
tests: 1
other: 4
or equivalent TOML (without the explaining comments):
[tool.mllint.testing]
report = "tests-report.xml"
targets = { minimum = 1, ratio = { tests = 1, other = 4 }}