Можно ли указать каталог для вывода 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?

0 ответов

Другие вопросы по тегам