diff --git a/Applications/ApplicationsLib/TestDefinition.cpp b/Applications/ApplicationsLib/TestDefinition.cpp
index 7914a00116e3de24e804ade97485480f7c432e3b..0611ac75736c2cb1a9c6903860ea378d3a026651 100644
--- a/Applications/ApplicationsLib/TestDefinition.cpp
+++ b/Applications/ApplicationsLib/TestDefinition.cpp
@@ -140,11 +140,13 @@ TestDefinition::TestDefinition(BaseLib::ConfigTree const& config_tree,
     std::string const vtkdiff = findVtkdiff();
 
     // Construct command lines for each entry.
+    //! \ogs_file_param{prj__test_definition__vtkdiff}
     auto const& vtkdiff_configs = config_tree.getConfigSubtreeList("vtkdiff");
     _command_lines.reserve(vtkdiff_configs.size());
     for (auto const& vtkdiff_config : vtkdiff_configs)
     {
         std::string const& field_name =
+            //! \ogs_file_param{prj__test_definition__vtkdiff__field}
             vtkdiff_config.getConfigParameter<std::string>("field");
         DBUG("vtkdiff will compare field '%s'.", field_name.c_str());
 
@@ -155,10 +157,12 @@ TestDefinition::TestDefinition(BaseLib::ConfigTree const& config_tree,
         MPI_Comm_size(PETSC_COMM_WORLD, &mpi_size);
         std::string const& filename =
             MeshLib::IO::getVtuFileNameForPetscOutputWithoutExtension(
+                //! \ogs_file_param{prj__test_definition__vtkdiff__file}
                 vtkdiff_config.getConfigParameter<std::string>("file")) +
             "_" + std::to_string(rank) + ".vtu";
 #else
         std::string const& filename =
+            //! \ogs_file_param{prj__test_definition__vtkdiff__file}
             vtkdiff_config.getConfigParameter<std::string>("file");
 #endif  // OGS_USE_PETSC
         std::string const& output_filename =
@@ -169,6 +173,7 @@ TestDefinition::TestDefinition(BaseLib::ConfigTree const& config_tree,
             BaseLib::joinPaths(reference_path, filename);
 
         auto const& absolute_tolerance =
+            //! \ogs_file_param{prj__test_definition__vtkdiff__absolute_tolerance}
             vtkdiff_config.getConfigParameterOptional<double>(
                 "absolute_tolerance");
         std::string const absolute_tolerance_parameter =
@@ -177,6 +182,7 @@ TestDefinition::TestDefinition(BaseLib::ConfigTree const& config_tree,
                 : "--abs " + convert_to_string(*absolute_tolerance);
 
         auto const& relative_tolerance =
+            //! \ogs_file_param{prj__test_definition__vtkdiff__relative_tolerance}
             vtkdiff_config.getConfigParameterOptional<double>(
                 "relative_tolerance");
         std::string const relative_tolerance_parameter =
diff --git a/Applications/CLI/ogs.cpp b/Applications/CLI/ogs.cpp
index 541a009e2145e62ee345c2a4c69a58802b54dc9c..0d3650f5e59aae9a62b6ff46b3d1af0538d88723 100644
--- a/Applications/CLI/ogs.cpp
+++ b/Applications/CLI/ogs.cpp
@@ -190,6 +190,7 @@ int main(int argc, char* argv[])
             {
                 test_definition =
                     std::make_unique<ApplicationsLib::TestDefinition>(
+                        //! \ogs_file_param{prj__test_definition}
                         project_config->getConfigSubtree("test_definition"),
                         reference_path_arg.getValue(),
                         outdir_arg.getValue());
diff --git a/Documentation/ProjectFile/prj/test_definition/i_test_definition.md b/Documentation/ProjectFile/prj/test_definition/i_test_definition.md
new file mode 100644
index 0000000000000000000000000000000000000000..17e7af123872120e4b1e4e84c8fff218bb383385
--- /dev/null
+++ b/Documentation/ProjectFile/prj/test_definition/i_test_definition.md
@@ -0,0 +1 @@
+Test definitions for post-simulation comparisons.
diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/i_vtkdiff.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/i_vtkdiff.md
new file mode 100644
index 0000000000000000000000000000000000000000..c61e662d54e152bba95e40187be90ba5cdf39c68
--- /dev/null
+++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/i_vtkdiff.md
@@ -0,0 +1,3 @@
+Test definition for vtkdiff comparison tool.
+
+See https://github.com/ufz/vtkdiff
diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_absolute_tolerance.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_absolute_tolerance.md
new file mode 100644
index 0000000000000000000000000000000000000000..576f7d14590b6e5b41590689ab4e8047ae5eba14
--- /dev/null
+++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_absolute_tolerance.md
@@ -0,0 +1 @@
+Absolute tolerance \f$\epsilon\f$ for comparison \f$|a - b| < \epsilon\f$.
diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_field.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_field.md
new file mode 100644
index 0000000000000000000000000000000000000000..ef446458e2b1022675010c1d034a5d4c4f6b325e
--- /dev/null
+++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_field.md
@@ -0,0 +1 @@
+Name of the point data or the cell data field to be compared.
diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_file.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_file.md
new file mode 100644
index 0000000000000000000000000000000000000000..266d913ccbe334941c4c8059026c3fc2399a3dc5
--- /dev/null
+++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_file.md
@@ -0,0 +1,3 @@
+Full name of the output file including the `.vtu` ending. For parallel
+simulations specify the same name as for the serial case; conversion of the file
+names according to the number of ranks happens automatically.
diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_relative_tolerance.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_relative_tolerance.md
new file mode 100644
index 0000000000000000000000000000000000000000..c59e7d5948226fcf1b552926da3527b494748b20
--- /dev/null
+++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_relative_tolerance.md
@@ -0,0 +1,4 @@
+Relative tolerance \f$\delta\f$ for comparison \f${|a - b| \over {\textrm
+min}(|a|, |b|)} < \delta\f$.
+If the absolute difference \f$|a - b|\f$ is zero, zero is returned.
+If \f$a\f$ or \f$b\f$ are zero, \f$+\infty\f$ is returned.