Wie führe ich mehrere Läufe/Kompilierungen aus, um Testdateien mit l3build zu überprüfen?

Wie führe ich mehrere Läufe/Kompilierungen aus, um Testdateien mit l3build zu überprüfen?

Ich möchte l3buildRegressionstests an meinem LaTeX-Code durchführen. Die Schwierigkeiten beginnen, wenn ich mehrere Kompilierungen benötige, um solche Regressionstests durchzuführen. Ich möchte beispielsweise überprüfen, ob ein Inhaltsverzeichnis die Abschnitte meines Testdokuments korrekt druckt.

Wenn ich es manuell mache, fehlt bei der 1. Kompilierung das Inhaltsverzeichnis und bei der 2. Kompilierung ist alles in Ordnung. Aber wenn ich es manuell mache, l3buildschaffe ich es nicht, ein 2. Mal zu kompilieren.

Aus der Dokumentation ging hervor, dass dies runtest_taskseine Option sein könnte. In meinem Fall scheint es jedoch nicht richtig zu funktionieren. Ich glaube, ich habe eine Kleinigkeit übersehen, aber da ich kein Beispiel gefunden habe, fällt es mir schwer, diese Kleinigkeit zu finden.

Hier ist ein 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

und ein 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}

Wie führt man also einen Regressionstest durch, der l3buildmehrere Durchläufe/Kompilierungen erfordert?

Antwort1

Ich verwandle die Kommentare von @Ulrike Fischer in eine Antwort.

Zu diesem Zweck steht einfach die Option checkruns=3zur Verfügung. Wenn die mehreren Prüfläufe nur einige Dateien betreffen, können sie außerdem in einem anderen Ordner abgelegt werden und die checkconfigs={<file>}Option verwendet werden, um auf eine bestimmte Einstellungskonfigurationsdatei zu verweisen, die sich auf diesen Ordner (und diese Dateien) bezieht.

verwandte Informationen