jsonSchema 单测重构 JUnit Jupiter

Refactor test resources to separate JSON Schema Test Suite files from project specific files · Issue #692 · networknt/json-schema-validator · GitHub

fixed by https://github.com/networknt/json-schema-validator/pull/697

i propose moving the specification files from JSON Schema Test Suite to . This would provide the following benefits:src/test/suite

  • Makes merging updates from that project into this one easier as it reduces the chance of removing or overwriting this project's files
  • Makes it easier to see exactly what changed in the specification thus making it easier to see what functional changes are required to conform (e.g., moved from to and was removed)content.json``draft2019-09/optional``draft2019-09``draft2019-09/optional/zeroTerminatedFloats.json
  • Enables the opportunity to populate by linking to that project thus eliminating the need to manually merge its changes into this project (it is also possible for Maven to download and unpack a specific version of the source code)src/test/suite
  • Enables more complicated processing of specification files. JSON Schema Test Suite has informed validators to expect specification files to appear at the root of the folder. The validators are now expected to extract from the specification file rather than using the folder name (e.g., tests``$schema``tests/draft2019-09)

This change depends on #690 being accepted.

Refactor unit-tests from JSON Schema Test Suite · Issue #690 · networknt/json-schema-validator · GitHub

fixed by Uses JUnit dynamic tests to generate tests from specification files by fdutton · Pull Request #691 · networknt/json-schema-validator · GitHub

JSON Schema Test Suite has several tests for each test-case and there is one or more test-cases in each specification file. Currently, this project treats each specification file as a single unit-test. As a result, a single test failure causes the unit-test to fail and no subsequent tests are performed. If the first test in a specification file fails, for example, no other tests are executed.

Several specification files are currently disabled simply because a single test fails. For example, content.json has four test-cases with a total of 18 tests. The unit-test is disabled so none of the tests are executed.

I propose refactoring the unit-tests to use JUnit Jupiter's dynamic test facility to create a separate unit-test for each test in a test-case (and each test-case in a specification file). This would provided several benefits:

The specification files also need refreshing but that is best left to a separate ticket.

This is an example of how this would appear when executed from the command line.

notranslate 复制代码
<span style="color:#1f2328"><span style="background-color:#ffffff"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>[INFO] +--JSON Schema Test Suite - 1.063s
[INFO] |  +-- [OK] validation of duration strings (src/test/resources/draft2019-09/optional/format/duration.json) Draft 2019-09 no elements present - 0.001s
[INFO] |  +-- [XX] validation of duration strings (src/test/resources/draft2019-09/optional/format/duration.json) Draft 2019-09 no time elements present - 0s
[INFO] |  +-- [OK] validation of duration strings (src/test/resources/draft2019-09/optional/format/duration.json) Draft 2019-09 no date or time elements present - 0s
</code></span></span></span></span>

This is how it appears in Eclipse (IntelliJ has similar views).

相关推荐
小林up10 分钟前
github push:ssh: connect to host github.com port 22
运维·ssh·github
Leinwin7 小时前
微软开源GitHub Copilot Chat,AI编程领域迎新突破
microsoft·github·copilot
草梅友仁10 小时前
草梅 Auth 与 AI 开发心得 | 2025 年第 27 周草梅周报
github·ai编程·视觉设计
qianmoQ14 小时前
GitHub 趋势日报 (2025年07月02日)
github
A5资源网18 小时前
cloudflare配合github搭建免费开源影视LibreTV一个独享视频网站 详细教程
github
mortimer18 小时前
从零到一:构建一个 Chatterbox-TTS API 服务
开源·github·ai编程
真智AI19 小时前
利用 Claude Opus 4 自动化 GitHub 工作流:从安装到实战详解
运维·自动化·github
寻月隐君1 天前
Rust 网络编程实战:用 Tokio 手写一个迷你 TCP 反向代理 (minginx)
后端·rust·github
喜欢吃豆1 天前
快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
服务器·人工智能·python·深度学习·大模型·github·fastmcp
油泼辣子多加1 天前
2025年06月30日Github流行趋势
github