此仓库包含一组 JSON 对象,允许 JSON Schema 验证库的实现者测试他们的验证器。
它应该是语言无关的,并只需要 JSON 解析器。
将 JSON 对象转换为所选测试框架中的测试仍然是验证器实现者的责任。
如果您要使用此套件,您需要了解测试的布局。测试包含在此仓库根目录下的 tests
目录中。
在该目录中为每个草案或 schema 版本有一个子目录。我们将使用 draft3
作为示例。
如果您查看 draft 目录,将看到许多 .json
文件,它们按逻辑分组一组测试案例。分组通常是按测试的属性进行的,但并不总是如此,特别是在可选测试文件中(下面将讨论)。
每个 .json
文件中包含一个包含对象的单个数组。以下面的示例最容易说明这些结构。
{
"description": "the description of the test case",
"schema": {"the schema that should" : "be validated against"},
"tests": [
{
"description": "a specific test of a valid instance",
"data": "the instance",
"valid": true
},
{
"description": "another specific test this time, invalid",
"data": 15,
"valid": false
}
]
}
所以一个描述、一个模式和一些测试,其中测试是一个包含一个或多个对象的数组,这些对象具有描述、数据和布尔值,指示它们是否应该是有效的或无效的。
草案 3 和 4 应该有全面覆盖。如果您发现缺少任何内容或认为缺少一个有用的测试,请发送拉取请求或打开一个问题。
此套件正在被以下使用
如果您也在使用,请 Fork 并发送拉取请求,将自己添加到列表中 :)
如果您发现缺少内容或错误,最欢迎的拉取请求!
测试套件的测试中实施了一些基本检查。您可以使用 bin/jsonschema_suite check
运行它们。Travis CI(https://travis-ci.org/)也会自动运行它们。