From 0bdb64c5f997ade426bd1564f627dd53179c5b15 Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Tue, 7 Apr 2020 15:02:50 +0800 Subject: [PATCH] ci(test): dump test time result to json file GitOrigin-RevId: 0ed092a0e86cb336f1166459501f6fe5dcc7be31 --- python_module/requires-test.txt | 3 ++- python_module/setup.py | 2 +- python_module/test/conftest.py | 24 +++++++++++++++++++++++- python_module/test/run.sh | 1 + 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/python_module/requires-test.txt b/python_module/requires-test.txt index 0bd28419d..9e7326840 100644 --- a/python_module/requires-test.txt +++ b/python_module/requires-test.txt @@ -1,2 +1,3 @@ pytest==5.3.0 -pytest-sphinx==0.2.2 +pytest-sphinx>=0.2.2 +pytest-json-report>=1.2.1 diff --git a/python_module/setup.py b/python_module/setup.py index f590322b2..7ae36070b 100644 --- a/python_module/setup.py +++ b/python_module/setup.py @@ -76,7 +76,7 @@ setup_kwargs = dict( ext_modules=[PrecompiledExtesion('megengine._internal._mgb')], install_requires=requires, extras_require={ - 'dev': [*requires_style, *requires_test], + 'dev': requires_style + requires_test, 'ci': requires_test, }, cmdclass={'build_ext': build_ext}, diff --git a/python_module/test/conftest.py b/python_module/test/conftest.py index 63da13303..cf1a53591 100644 --- a/python_module/test/conftest.py +++ b/python_module/test/conftest.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # # Copyright (c) 2014-2020 Megvii Inc. All rights reserved. @@ -10,3 +9,26 @@ import os import sys sys.path.append(os.path.join(os.path.dirname(__file__))) + + +def pytest_json_modifyreport(json_report): + events = [] + timestamp = 0 + for item in json_report["tests"]: + for stage in ["setup", "call", "teardown"]: + if stage in item: + events.append( + { + "name": item["nodeid"], + "ph": "X", + "ts": timestamp, + "dur": item[stage]["duration"] * 1e6, + "cat": stage, + "pid": stage, + "tid": item["nodeid"], + } + ) + timestamp += events[-1]["dur"] + json_report["traceEvents"] = events + del json_report["collectors"] + del json_report["tests"] diff --git a/python_module/test/run.sh b/python_module/test/run.sh index 08d0abbff..4d8213404 100755 --- a/python_module/test/run.sh +++ b/python_module/test/run.sh @@ -2,6 +2,7 @@ pushd $(dirname "${BASH_SOURCE[0]}")/.. >/dev/null pytest -xv -m 'not internet' \ + --json-report --json-report-file=time_python_test.json \ --ignore test/unit/module/test_pytorch.py \ --ignore test/pytorch_comparison \ --ignore test/unit/hub/test_hub.py \ -- GitLab