Можно ли указать каталог для вывода JSON в Pytest-Benchmark из Python?
Я пытаюсь записать результаты pytest-benchmark в файл JSON с произвольным именем. Тем не менее, по-видимому, pytest.mark.benchmark
Декоратор (см. http://pytest-benchmark.readthedocs.io/en/stable/) не поддерживает это:
import pytest
@pytest.mark.benchmark(json="/tmp")
def test_benchmark_json_output(benchmark):
benchmark.pedantic(print, args=("foobar",))
if __name__ == "__main__":
pytest.main([__file__])
приводит к
==================================== ERRORS ====================================
_________________ ERROR at setup of test_benchmark_json_output _________________
item = <Function 'test_benchmark_json_output'>
def pytest_runtest_setup(item):
marker = item.get_marker("benchmark")
if marker:
if marker.args:
raise ValueError("benchmark mark can't have positional arguments.")
for name in marker.kwargs:
if name not in (
"max_time", "min_rounds", "min_time", "timer", "group", "disable_gc", "warmup",
"warmup_iterations", "calibration_precision"):
> raise ValueError("benchmark mark can't have %r keyword argument." % name)
E ValueError: benchmark mark can't have 'json' keyword argument.
Так что, хотя есть аргумент командной строки --benchmark-json
нет соответствующего pytest.mark.benchmark
аргумент в этом случае (только для max_time
, min_rounds
, так далее.).
Неужели невозможно указать имя вывода JSON из Python?