我有以下测试文件(testdefinitioninheritance.lvt
),它生成了一些输出。
\input{regression-test}
\documentclass{minimal}
\usepackage{docvar}
\begin{document}
\START
\OMIT
\definedocvar{title}
\setdocvar{title}{Long Title Sentence}
\definedocvar[inherit=title]{subtitle}
\TIMO
\getdocvar{subtitle}
\showoutput
\vfill\break
\END
\end{document}
我运行保存命令
texlua build.lua save -p testdefinitioninheritance
保存的 pdf 文件看起来不错。
如果我事后进行检查
texlua build.lua check -p testdefinitioninheritance
检查pdftex
总是通过,但和xetex
失败luatex
。我发现有一个build/test/testdefinitioninheritance.ref.pdf
用构建的文件pdftex
。每个引擎不应该都有一个 pdf 文件吗?
(注意:运行最新更新的 TL2017)。
答案1
首先,需要注意的是:这里的设置可能会有所改变,因为团队认为使用开关可能不是改变测试结果的最佳方式。这反映了团队目前不使用基于 PDF 的测试这一事实,因此该领域在某种程度上是实验性的。
使用 PDF 的二进制比较进行测试与比较不同的日志输出有很大不同,因为我们无法进行任何标准化:要么两个结果完全相同的或者不是。使用不同的引擎,您将得到结果之间的差异,部分原因是它们故意做不同的事情(例如生产者字符串),部分原因是它们具有不同的代码流(例如XeTeX 走向通过因此PDF.xdv
的创建与 pdfTeX 中的创建有很大不同)。
目前,l3build
创建参考 PDF 文件与创建参考文件使用相同的逻辑.tlg
:除非使用开关调用-e
,否则参考文件将使用默认引擎(通常为 pdfTeX)创建。因此,如果您想对多个引擎进行基于 PDF 的比较,则需要将它们全部单独保存
texlua build.lua save -epdftex,xetex,luatex -p testdefinitioninheritance
我认为值得记住的是,基于 PDF 的比较可能最适合于只有一个引擎需要测试的情况。对于跨引擎工作,通常可以.tlg
创建一个或多个文件。