FitNesse表格前置感叹号后部分变量无法解析如何解决
FitNesse变量解析冲突解决方法
问题原因
表格前加!是FitNesse的字面量表格标记,该模式下所有wiki内置指令(包括!today)都会被作为普通文本输出,不会提前渲染;但如果不加该标记,值符合页面名规则的${RUNNING_PAGE_NAME}变量会被自动渲染为页面跳转链接,两种默认规则产生了冲突。
可行方案
方案1:使用即时求值语法包裹时间生成指令,保留表格的
!标记
FitNesse支持用${= 表达式 =}标记包裹需要即时求值的内容,该标记哪怕在字面量模式下也会被优先解析,不会被当成普通文本。直接修改代码如下即可:!|script |screenshot | |$capture=|take screenshot;|${RUNNING_PAGE_NAME}|${=!today (YYYYMMddhhmmss)=}_{$file_name}|这种写法既可以通过表格前的
!阻止${RUNNING_PAGE_NAME}被渲染为链接,又能正常生成时间戳前缀,最终文件名符合20220704083616_file_name的预期格式。方案2:用局部字面量标记包裹页面名变量,移除表格前的
!
FitNesse原生支持!- 内容 -!标记,被该标记包裹的内容不会触发任何wiki自动渲染(包括自动生成页面链接),但标记外的变量、内置指令都会正常解析。如果不想用即时求值语法,可以用这种写法:!define date {!today (YYYYMMddhhmmss)} |script |screenshot | |$capture=|take screenshot;|!-${RUNNING_PAGE_NAME}-!|${date}_{$file_name}|这种写法不需要给表格加
!,!today指令可以正常解析生成时间戳,同时被!- -!包裹的页面名变量不会被渲染为链接。
注意:不建议通过全局配置关闭wiki自动链接功能,该操作会影响测试套件内所有页面的正常渲染,优先使用上述两种局部处理方案即可。
内容的提问来源于stack exchange,提问作者rcepre
相关产品推荐
相关产品推荐

