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).

相关推荐
wangruofeng5 小时前
81 位 GitHub Stars 校友的作品与共同点:影响力来自长期公开建设
开源·github
码流怪侠10 小时前
StreamingBench:首个流式视频理解基准——多模态大模型离人类实时感知还有多远?
llm·github·音视频开发
峰向AI13 小时前
119K Star 的 AI Agent 宝库:别人写好的 100 个模板,克隆就能跑
github
dong_junshuai13 小时前
每天一个开源项目#34 Desktop Commander:7.5K Star MCP 桌面工具箱
github
逛逛GitHub15 小时前
GitHub 上已开源,有人把《哈利·波特》中的笔记做出来了。
github
m0_7381207216 小时前
PHP代码审计基础——面向对象(四)
android·开发语言·网络·安全·github·php
阿里嘎多学长16 小时前
2026-07-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管
小帅不太帅18 小时前
我随手发了几张截图,白拿了一个月 AI 顶配会员
前端·github
程序员柒叔19 小时前
OpenCode 一周动态-2026-W28
人工智能·github·agent·opencode·hermes
Agent治理法学19 小时前
我开源了一套 AI Agent 框架:有性格、有规则、还会自己造工具
node.js·github