diff --git a/httprunner/make.py b/httprunner/make.py index b6726712..637e3de9 100644 --- a/httprunner/make.py +++ b/httprunner/make.py @@ -279,7 +279,7 @@ def make_teststep_chain_style(teststep: Dict) -> Text: step_info += f'.setup_hook("{hook}")' elif isinstance(hook, Dict) and len(hook) == 1: assign_var_name, hook_content = list(hook.items())[0] - step_info += f'.setup_hook("{hook}", "{assign_var_name}")' + step_info += f'.setup_hook("{hook_content}", "{assign_var_name}")' else: raise exceptions.TestCaseFormatError(f"Invalid setup hook: {hook}") @@ -297,7 +297,7 @@ def make_teststep_chain_style(teststep: Dict) -> Text: step_info += f'.teardown_hook("{hook}")' elif isinstance(hook, Dict) and len(hook) == 1: assign_var_name, hook_content = list(hook.items())[0] - step_info += f'.teardown_hook("{hook}", "{assign_var_name}")' + step_info += f'.teardown_hook("{hook_content}", "{assign_var_name}")' else: raise exceptions.TestCaseFormatError(f"Invalid teardown hook: {hook}") diff --git a/httprunner/models.py b/httprunner/models.py index c4b60955..e149e407 100644 --- a/httprunner/models.py +++ b/httprunner/models.py @@ -158,9 +158,12 @@ class StepData(BaseModel): success: bool = False name: Text = "" # teststep name - data: Union[SessionData, List[SessionData]] = None + data: Union[SessionData, List['StepData']] = None export_vars: VariablesMapping = {} + +StepData.update_forward_refs() + class TestCaseSummary(BaseModel): name: Text diff --git a/tests/scaffold_test.py b/tests/scaffold_test.py index ee21cf51..3a6b7073 100644 --- a/tests/scaffold_test.py +++ b/tests/scaffold_test.py @@ -2,6 +2,7 @@ import os import shutil import subprocess import unittest +import platform from httprunner.scaffold import create_scaffold @@ -18,7 +19,10 @@ class TestScaffold(unittest.TestCase): # run demo testcases try: - subprocess.check_call(["hrun", project_name]) + if platform.system() is "Windows": + subprocess.check_call(["hrun", project_name], shell=True) + else: + subprocess.check_call(["hrun", project_name]) except subprocess.SubprocessError: raise finally: