检查单元测试中的文件系统结构文件夹名、文件名

问题描述

我正在寻找一种方法将单元测试添加到我的文档中。我使用 antora 从 asciidoc 生成我的文档网站。工作得很好。现在我正在寻找一种方法来对我的文档(以及 asciidoc 文件)进行单元测试。但这不是我现在的问题。

我现在想要的是一种测试我的文档的文件系统结构的方法我有几个具有类似基础设置和基本文档的存储库。细节不同,但例如我想确保每个文档在 PROJECT/docs/modules/ROOT 中都有他们的主要文档,并且导航文件在每个模块中都被命名为 nav.adoc 等。

基本上我希望每个项目都有相同的文档结构。

所以我想知道是否有一种方法可以测试文件系统(文件夹名、文件名)。最终,这些测试应该成为我的 gitlab ci 管道的一部分。

archunit 能帮上忙吗?如果没有更好的方法,我会考虑它,但由于 archunit 以 Java 项目为目标,这对我的 uaecase 来说似乎有点过分。

解决方法

请务必记住,Antora 可以从多个存储库收集内容。当 Antora 收集内容时,该内容会保存在虚拟文件系统中,直到完成向 HTML 的转换。这意味着无论您在何处运行 Antora,都不能直接查询 repos 的文件系统结构,除非它恰好是本地的(您正在使用“作者”模式,或者您拥有对 repo 的最新签出)本地)。

可以为 Antora 编写一个扩展(用 JavaScript,因为 Antora 是一个 Node.js 应用程序)来调查虚拟文件系统并抱怨发现的任何结构问题。

在 Antora 之外,您基本上是在编写特定于存储库的测试。可以按您喜欢的任何方式调用该测试,例如通过在运行 make 时运行测试脚本。或者,您可以在您的存储库中添加一个 git commit 钩子,以在适当的文件结构不存在时阻止提交。

TL;DR 的回答是“是的,这是可以做到的”。但是,它需要一些实施工作才能实现。