Fitnesse Wiki页面元数据异常:重启丢失及显示被删除线覆盖
针对Fitnesse Wiki两大问题的排查与解决方案
我之前维护Fitnesse环境时也碰到过类似的坑,结合实际排查经验给你梳理下可行的思路和解决办法:
一、服务器重启后页面级元数据丢失问题
先从Fitnesse的核心存储机制入手排查,大概率是存储配置或权限层面的问题:
- 检查文件系统权限:Fitnesse默认把页面元数据存在
FitNesseRoot目录下对应页面的properties.xml文件里。重启后元数据丢失,先确认服务器运行用户对FitNesseRoot目录有读写权限——如果权限不足,修改后的元数据无法持久化到磁盘,重启自然就清空了。 - 排查存储配置:打开Fitnesse的配置文件(比如
plugins.properties或自定义配置文件),检查有没有错误配置成内存存储(比如某些临时测试用的存储插件),这种存储方式下数据不会落地,重启必然丢失。确保配置的是默认的文件系统存储。 - 验证元数据存储文件:手动修改页面元数据后,去对应页面的目录下查看
properties.xml是否同步更新。如果文件没变化,可能是第三方插件(比如版本控制类插件)冲突导致写入异常,尝试禁用插件后再测试。 - 检查服务器重启脚本:有些服务器重启时会自动清理临时目录,如果
FitNesseRoot被放在了临时目录下,重启后数据自然会被清空,需要把FitNesseRoot迁移到持久化目录。
二、页面顶部元数据被识别为删除线问题
Fitnesse的Wiki语法里,双短横线--默认就是删除线标记,所以直接用---开头的元数据块会被误渲染。这里有两个靠谱的解决方法:
- 改用官方推荐的
!meta指令:Fitnesse原生支持用!meta指令定义页面元数据,完全避免语法冲突。把原来的:
改成:--- Help: 测试套件的人性化描述 Suites: TAG1, TAG2 Suite ---
这样既不会触发删除线渲染,Fitnesse也能正确识别元数据,还更符合官方规范。!meta Help: 测试套件的人性化描述 !meta Suites: TAG1, TAG2 - 转义双短横线(兼容方案):如果一定要保留原有格式,可以在双短横线前加反斜杠
\转义,比如:
不过这种方法在部分Fitnesse版本里兼容性一般,还是优先推荐\--- Help: 测试套件的人性化描述 Suites: TAG1, TAG2 Suite \---!meta指令的方式。
内容的提问来源于stack exchange,提问作者ufo2mstar




