|
import os |
|
import pytest |
|
|
|
|
|
def pytest_addoption(parser): |
|
parser.addoption('--baseline_dir', action="store", default='tests/inference/baseline', help='Directory for ground-truth images') |
|
parser.addoption('--test_dir', action="store", default='tests/inference/samples', help='Directory for images to test') |
|
parser.addoption('--metrics_file', action="store", default='tests/metrics.md', help='Output file for metrics') |
|
parser.addoption('--img_output_dir', action="store", default='tests/compare/samples', help='Output directory for diff metric images') |
|
|
|
|
|
@pytest.fixture(scope="session", autouse=True) |
|
def args_pytest(pytestconfig): |
|
args = {} |
|
args['baseline_dir'] = pytestconfig.getoption('baseline_dir') |
|
args['test_dir'] = pytestconfig.getoption('test_dir') |
|
args['metrics_file'] = pytestconfig.getoption('metrics_file') |
|
args['img_output_dir'] = pytestconfig.getoption('img_output_dir') |
|
|
|
|
|
with open(args['metrics_file'], 'a') as f: |
|
|
|
if os.stat(args['metrics_file']).st_size == 0: |
|
f.write("| date | run | file | status | value | \n") |
|
f.write("| --- | --- | --- | --- | --- | \n") |
|
|
|
return args |
|
|
|
|
|
def gather_file_basenames(directory: str): |
|
files = [] |
|
for file in os.listdir(directory): |
|
if file.endswith(".png"): |
|
files.append(file) |
|
return files |
|
|
|
|
|
def pytest_generate_tests(metafunc): |
|
if "baseline_fname" in metafunc.fixturenames: |
|
baseline_fnames = gather_file_basenames(metafunc.config.getoption("baseline_dir")) |
|
metafunc.parametrize("baseline_fname", baseline_fnames) |
|
|