STF Testing Frameworks

knitr::opts_chunk$set(echo = TRUE)
library(test.assessr)

The test.assessr package checks package structure and test drivers to detect and classify testing configurations.

If it detects a standard testing framework (STF) (i.e. testthat or testit), it runs a standard testing workflow involving a number of steps:

Step 1

Step 1 unit test data coverage object

| R object | field | element 1 | element 2 | value | | -------- | ----- | --------- | --------- | ------| | test_package |pkg_name | | | "test.package.0001" | | | pkg_ver | | | "0.1.0" | | | date_time | | | "2026-03-09 14:27:36.673915" | | | executor | | | "xxxxxxx" | | | sysname | | | "Linux" | | | version | | | "#1 SMP PREEMPT_DYNAMIC Mon Dec 1 05:36:50 UTC 2025" | | | release | | | "6.1.158-180.294.amzn2023.x86_64" | | | machine | | | "x86_64" | | | r_version | | |"4.4.1" | | | test_framework_type | | | standard testing framework | | | total_cov | | | 1 | | | res_cov | name| |"test.package.0001" | | | | coverage | filecoverage | R/myscript.R 100 | | | | | totalcoverage | 100 | | | errors | | |NA | | | notes | | |NA |

Step 2

Step 2 unit test data coverage object

| R object | field | element 1 | element 2 | value | | -------- | ----- | --------- | --------- | ------| | test_package |pkg_name | | | "test.package.0003" | | | pkg_ver | | | "0.1.0" | | | date_time | | | "2026-04-09 10:17:27.71564" | | | executor | | | "xxxxxxx" | | | sysname | | | "Linux" | | | version | | | "#1 SMP PREEMPT_DYNAMIC Mon Dec 1 05:36:50 UTC 2025" | | | release | | | "6.1.158-180.294.amzn2023.x86_64" | | | machine | | | "x86_64" | | | r_version | | |"4.4.1" | | | test_framework_type | | | standard testing framework | | | total_cov | | | 0 | | | res_cov | name| |"test.package.0003" | | | | coverage | filecoverage | num [1(1d)] 0 | | | | | attr(*, "dimnames")=List of 1 chr "myscript.R" | | | | | totalcoverage | 0 | | | errors | | |NA | | | notes | | |NA | | long_summary | file | | | "test-myscript.R#L2_L2" | | | code_script | | | "myscript" | | | context | | | "this works" | | | status | | | "FAILED" | | | n | | | 1 | | | time | | | 0.291 | | test_skip | file | | | "test-myscript.R" | | | code_script | | | "myscript" | | | context | | | "this works" | | | status | | | "FAILED" | | | n | | | 1 | | | time | | | 0.291 | | | expectation: | | | "expect_equal" | | | line1 | | | 2 | | | line2 | | | 2 |

This data object differs from Step 1 data object in that it gives information about which tests/test blocks were skipped and the status tells the user why they were skipped.

Step 3

Step 3 unit test data coverage object

| R object | field | element 1 | element 2 | value | | -------- | ----- | --------- | --------- | ------| | test_package |pkg_name | | | "dplyr" | | | pkg_ver | | | "1.1.4" | | | date_time | | | "2026-04-09 10:17:27.71564" | | | executor | | | "xxxxxxx" | | | sysname | | | "Linux" | | | version | | | "#1 SMP PREEMPT_DYNAMIC Mon Dec 1 05:36:50 UTC 2025" | | | release | | | "6.1.158-180.294.amzn2023.x86_64" | | | machine | | | "x86_64" | | | r_version | | |"4.4.1" | | | test_framework_type | | | standard testing framework | | | total_cov | | | 0 | | | res_cov | name| |"dplyr" | | | | coverage | filecoverage | num [1:109(1d)] 98.3 76.7 97.5 100 100 ... | | | | | attr(*, "dimnames")=List of 1 [1:109] "across.R" "all-equal.R" "arrange.R" "bind-cols.R" ... | | | | | totalcoverage | 0.907 | | | errors | | |NA | | | notes | | |NA | | long_summary | file | | | [1:3432] "test-across.R#L7_L7" "test-across.R#L14_L14" "test-across.R#L20_L20" "test-across.R#L24_L24" ... | | | code_script | | | [1:3432] "across" "across" "across" "across" ... | | | context | | | [1:3432] "across() works on one column data.frame" "across() does not select grouping variables" "across() corre" | | | status | | | [1:3432] "PASS" "PASS" "PASS" "PASS" ... | | | n | | | [1:3432] 1 1 1 1 1 1 1 1 1 1 ... | | | time | | | [1:3432] 0.041 0.014 0.077 0.077 0.077 ...| | test_skip | file | | | [1:448] "test-across.R" "test-across.R" "test-across.R" "test-across.R" ... | | | code_script | | | [1:448] "across" "across" "across" "across" ... | | | context | | | "across() gives meaningful messages" "across() gives meaningful messages" "across() gives meaningful mes" | | | status | | | [1:448] "FAILED" "FAILED" "FAILED" "FAILED" ... | | | n | | | [1:448] 1 1 1 1 1 1 1 1 1 1 ... | | | time | | | [1:448] 2.03 2.03 2.03 2.03 2.03 ... | | | expectation| | | [1:448] "expect_snapshot" "expect_error" "expect_error" "expect_error" ... | | | line1 | | | [1:448] 209 212 216 222 226 230 234 238 243 244 ... | | | line2 | | | [1:448] 280 215 219 225 229 233 237 241 243 244 ... |

Both Step 2 unit test data coverage object and Step 3 unit test data coverage object give the user details about the status of the tests FAILED, PASSED and SKIPPED.

They also contain the test block start line (i.e. line1 and line2) and the expectation type in the expectation column (e.g. expect_snapshot expect_error).



Try the test.assessr package in your browser

Any scripts or data that you put into this service are public.

test.assessr documentation built on April 30, 2026, 5:06 p.m.