From c741f584ba6d3d0e31c24122567dbe7179fd5af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Sun, 3 May 2026 10:17:14 +0200 Subject: [PATCH] added last reports changes. --- src/sections/functionalities.tex | 6 +++--- testium_training.pdf | Bin 613211 -> 613392 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sections/functionalities.tex b/src/sections/functionalities.tex index 5a64e28..545ea8f 100644 --- a/src/sections/functionalities.tex +++ b/src/sections/functionalities.tex @@ -239,13 +239,13 @@ main: \begin{columns} \column{0.6\textwidth} \begin{itemize} - \item Supports sqlite, Junit, JSON, txt formats - \item Designed to ease the addition of new formats if any specific request + \item Built-in formats: \incode{sqlite}, \incode{junit}, \incode{json}, \incode{html}, \incode{text} + \item Custom formats via Python entry-points (\incode{testium.exporters} group) — installable as standalone packages \item Added to the root of the main .tum file \begin{itemize} \item \incode{path}: The report path \item \incode{file\_name}: The name of the report file - \item \incode{export}: The type of export + \item \incode{export}: The type(s) of export — single entry or list \item \incode{log\_stored}: Stores the log extracts in the report \end{itemize} \item the \incode{report} test item can also generate some intermediate reports diff --git a/testium_training.pdf b/testium_training.pdf index 932476e4b0e33642f398e53f70ba7ea6c717f15f..5586506785adbc5846610b4fbc21510e4ade6c93 100644 GIT binary patch delta 9746 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 delta 9551 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