From 936093aaedb0dc70d801333db8d82f9b401183ad Mon Sep 17 00:00:00 2001 From: bb-idea Date: Thu, 16 Jun 2022 11:41:04 +0800 Subject: [PATCH] =?UTF-8?q?v4=E5=A2=9E=E5=8A=A0pytest=20skip=E7=89=B9?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- httprunner/make.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/httprunner/make.py b/httprunner/make.py index 7fe473b3..10bc288c 100644 --- a/httprunner/make.py +++ b/httprunner/make.py @@ -42,8 +42,11 @@ from pathlib import Path sys.path.insert(0, str(Path(__file__){% for _ in range(diff_levels) %}.parent{% endfor %})) {% endif %} +{% if parameters or skip %} +import pytes +{% endif %} + {% if parameters %} -import pytest from httprunner import Parameters {% endif %} @@ -54,10 +57,21 @@ from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase class {{ class_name }}(HttpRunner): - {% if parameters %} + {% if parameters and skip %} + @pytest.mark.parametrize("param", Parameters({{parameters}})) + @pytest.mark.skip(reason={{ skip }}) + def test_start(self, param): + super().test_start(param) + + {% elif parameters %} @pytest.mark.parametrize("param", Parameters({{parameters}})) def test_start(self, param): super().test_start(param) + + {% elif skip %} + @pytest.mark.skip(reason={{ skip }}) + def test_start(self): + super().test_start() {% endif %} config = {{ config_chain_style }} @@ -205,6 +219,15 @@ def make_config_chain_style(config: Dict) -> Text: return config_chain_style +def make_config_skip(config: Dict) -> Text: + if "skip" in config: + if config["skip"]: + config_chain_style = config["skip"] + else: + config_chain_style = '"skip unconditionally"' + return config_chain_style + + def make_request_chain_style(request: Dict) -> Text: method = request["method"].lower() url = request["url"] @@ -414,6 +437,7 @@ def make_testcase(testcase: Dict, dir_path: Text = None) -> Text: "class_name": f"TestCase{testcase_cls_name}", "imports_list": imports_list, "config_chain_style": make_config_chain_style(config), + "skip": make_config_skip(config), "parameters": config.get("parameters"), "teststeps_chain_style": [ make_teststep_chain_style(step) for step in teststeps