tests/testthat/test-compilation_error.R

library(testthat)
library(ggplot2)

context("Check compilation error messages appear well in console")

seed <- 1
source(file.path(getwd(), test_path(), "test-utils.R"))

test_that("Incorrect Campsis model does not compile and a clear error message is shown", {
  model <- model_suite$testing$nonmem$advan2_trans2 %>%
    replace(Equation("V", "THETA_V*exp(ETA_V)*BW/70"))

  ds <- Dataset(1) %>%
    add(Observations(0:12))

  test <- expression(
    if (destEngine %in% c("RxODE", "rxode2")) {
      # RxODE throws a clear error message
      expect_error(
        simulate(model = model, dataset = ds, dest = destEngine),
        regexp = "The following parameter\\(s\\) are required for solving: BW"
      )
    },
    if (destEngine %in% c("mrgsolve")) {
      # Mrgsolve throws an error but message is displayed with cat and cannot be retrieved straightaway
      expect_error(simulate(model = model, dataset = ds, dest = destEngine), regexp = "the model build step failed")

      # Message can be captured as follows
      expect_message(
        tryCatch(
          {
            simulate(model = model, dataset = ds, dest = destEngine)
          },
          error = function(cond) {
            # Do nothing
          }
        ),
        regexp = "(['‘]BW['’] was not declared in this scope)|(use of undeclared identifier 'BW')" # Careful, platform dependent!
      )
    }
  )
  campsis_test(expression(), test, env = environment())
})

Try the campsis package in your browser

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

campsis documentation built on Aug. 5, 2026, 9:07 a.m.