AsciiDoc语言项目的这个子项目托管了AsciiDoc的抽象语义图(ASG)的JSON模式。AsciiDoc ASG代表了解析后的AsciiDoc文档的语义结构和内容。TCK使用这个ASG来验证兼容的AsciiDoc实现(即,解析器)的行为。

关于架构

模式是使用JSON模式语言定义的。模式存储在此子项目根目录下的_schema.json_文件中。该模式识别了ASG的有效结构、所需和可选属性,以及预期的类型。

执行测试

在这个子项目中,通过使用[Ajv JSON schema validator](https://github.com/ajv-validator/ajv)测试方案是由测试套件测试的。要运行测试,您首先需要安装所需的依赖项:

$ npm ci

要运行自测试套件,请调用npm的`test`任务:

$ npm t

验证输出文件

TCK 断言,针对给定的 AsciiDoc 输入文档,一个实现应产生预期的 ASG。您可以使用 npm validate 任务来验证这些预期的输出文件。

$ npm run validate --dir=/path/to/tests

任务将自动选择以 -output.json 结尾的文件,并根据ASG架构对它们进行验证。

您也可以使用`validate-asg`二进制脚本来验证单个文件:

$ npx validate-asg test/fixtures/sample-1.json

验证ASG(Auto Scaling Group)的二进制脚本源代码可以在_bin/validate-asg.js_找到。