diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 462184f0..362cedb7 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -5,6 +5,7 @@ **Added** - feat: add json schema validation for api +- feat: add json schema validation for testcase v2 **Changed** diff --git a/httprunner/loader/buildup.py b/httprunner/loader/buildup.py index a7f0b09a..0e95911a 100644 --- a/httprunner/loader/buildup.py +++ b/httprunner/loader/buildup.py @@ -2,7 +2,7 @@ import importlib import os from httprunner import exceptions, logger, utils -from httprunner.loader.check import JsonSchemaChecker +from httprunner.loader.check import JsonSchemaChecker, JsonSchemaV2Checker from httprunner.loader.load import load_module_functions, load_file, load_dot_env_file, \ load_folder_files from httprunner.loader.locate import init_project_working_directory, get_project_working_directory @@ -225,6 +225,7 @@ def load_testcase_v2(raw_testcase): } """ + JsonSchemaV2Checker.validate_testcase_format(raw_testcase) raw_teststeps = raw_testcase.pop("teststeps") raw_testcase["teststeps"] = [ load_teststep(teststep) diff --git a/httprunner/loader/schemas/testcase.schema.v2.json b/httprunner/loader/schemas/testcase.schema.v2.json index 42404866..09729489 100644 --- a/httprunner/loader/schemas/testcase.schema.v2.json +++ b/httprunner/loader/schemas/testcase.schema.v2.json @@ -2,23 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema", "description": "httprunner testcase schema definition", "type": "object", - "properties": { - "config": { - "$ref": "common.schema.json#/definitions/config" - }, - "teststeps": { - "description": "teststep of a testcase", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/teststep" - } - } - }, - "required": [ - "config", - "teststeps" - ], "definitions": { "teststep": { "type": "object", @@ -84,5 +67,22 @@ } ] } - } + }, + "properties": { + "config": { + "$ref": "common.schema.json#/definitions/config" + }, + "teststeps": { + "description": "teststep of a testcase", + "type": "array", + "minItems": 1, + "items": { + "$ref": "testcase.schema.v2.json#/definitions/teststep" + } + } + }, + "required": [ + "config", + "teststeps" + ] } \ No newline at end of file