--- title: "Generate Test Report" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Generate Test Report} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` ```{r load, echo=FALSE} library(test.assessr) ``` ## Introduction The `generate_test_report()` function provides a unified way to generate HTML test assessment reports for R packages. It supports both standard testing frameworks (STF) and non-standard testing frameworks (NSTF) as well as single testing frameworks and multi‑framework test setups, producing a structured report that combines test summaries, detailed results, and coverage information. ## Step 1 - Run package coverage for a package Run the following code ```{r pkg_covr, eval=FALSE} dp <- system.file("test-data", "test.package.0001_0.1.0.tar.gz", package = "test.assessr") test_results <- get_package_coverage(dp) generate_test_report( test_results, output_dir = getwd() ) ``` Important: `output_dir` is required. It must be an existing, writable directory, such as: `getwd()` `"path/to/output_dir"` If output_dir is missing or invalid, the function will error. The generated HTML file will be written to output_dir. and named using the package name and version, for example: `test_report_mypackage_1.2.3.html` ## What the Report Contains Regardless of setup, every report includes: - Package name and version - Execution metadata (platform, R version, date/time) - A package‑level summary of test status - Test coverage results - Detailed test results, per framework if applicable The function automatically normalizes input so that single‑ and multi‑framework results share the same report structure. ## STF vs NSTF Reporting The report distinguishes between STF and NSTF testing frameworks and presents framework‑appropriate detail sections when available. ## STF (Standard Testing Frameworks) STF results come from `testthat` and/or `testit` frameworks. When STF data are present, the report may include: - Long summaries of test outcomes - Detailed test skip reasons - expectation types - test block start lines These sections appear only when STF elements are detected, keeping reports concise when they are not relevant. See the `dplyr` test report in the `inst/examples` folder. ## NSTF (Non‑Standard Testing Frameworks) NSTF reporting supports lighter‑weight or base‑R‑style testing approaches, such as: - RUnit - data.table - Manual or script‑based tests without rich metadata For NSTF frameworks, the report can include: - Functions with no associated tests - Lists of skipped tests - Lists of passing tests - File‑level context with shortened paths when needed for readability NSTF sections are generated only when relevant elements are present in test_results. See the `MASS` test report in the `inst/examples` folder. ## Multi‑Framework Reports When test_results indicates a multi‑framework setup: - Each framework (e.g. testthat, covr, custom runners) gets its own subsection - Coverage is reported per framework - STF and NSTF sections are evaluated independently per framework