如何执行多次运行/编译来使用 l3build 检查测试文件?

如何执行多次运行/编译来使用 l3build 检查测试文件?

我想用l3build它对我拥有的一些 LaTeX 代码进行回归测试。当我需要多次编译才能进行此类回归测试时,我的困难就开始了。例如,我想检查目录是否正确打印了我的测试文档的各个部分。

如果我手动进行,第一次编译时目录会丢失,第二次编译时一切正常。但是,如果我手动进行,l3build第二次编译时就无法编译。

从文档中,我发现这runtest_tasks可能是一个选项。但是,在我的情况下,它似乎无法正常工作。我想我错过了一些东西,但由于我找不到示例,所以我很难找到这个小东西。

这是一个MWE:build.lua:

checksearch = true -- Enable command printing during check phase

-- Function to check if a file name matches a certain pattern
local function match_pattern(filename, pattern)
  return true
  -- string.match(filename, pattern) ~=nil
end

-- Define the runtest_tasks function
runtest_tasks = function(name, run)
  if run == 1 then
    print("Debug: name =", name, "run =", run, current_engine )
    -- Run additional tasks for files matching a specific pattern
    if match_pattern(name, "mytest") then
      print("")
      print("Executing additional tasks for files matching the pattern.")
      print("tex(name)")
      -- Add your specific tasks here
      errorlevel = tex(name..'.lvt') -- second compilation
      print("Executing additional tasks DONE")
      return "echo "..errorlevel -- I get 256, and no table of content printed
    else
      return "echo "..0
    end
  else
    return "echo "..0
  end
end

和一个 mytest.lvt

\input regression-test.tex\relax

\documentclass{article}

\begin{document}
\START
\showoutput


\TEST{toc section}{

\tableofcontents
\newpage

\section{test}

}
\END 

\vfil\break
\end{document}

那么如何执行l3build需要多次运行/编译的回归测试?

答案1

我正在将@Ulrike Fischer 的评论转化为答案。

有选项checkruns=3可用于此目的。此外,如果多次检查仅涉及某些文件,则可以将它们分开到不同的文件夹中,并使用该checkconfigs={<file>}选项指向与该文件夹(和文件)相关的特定设置配置文件。

相关内容