Я не уверен, как проверить функцию в моем пакете, которая запускает блестящее приложение на панели просмотра.Когда я запускаю devtools::test()
, он работает нормально, но когда я запускаю devtools::check()
, я получаю сообщение об ошибке, что RStudio не работает.Это упрощенная версия кода:
library(shiny)
library(testthat)
view_ui <- function(x) {
app <-
shinyApp(
ui = fluidPage(x),
server = function(input, output) {Sys.sleep(5);stopApp()}
)
runApp(
app,
launch.browser = rstudioapi::viewer
)
}
Вот моя попытка теста:
test_that("app runs", {
x <- selectInput("n", "select number:", 1:10)
expect_message(
view_ui(x),
regexp = "Listening"
)
})
Я знаю, что это строка rstudioapi::viewer
, которая вызывает ее сбойпотому что devtools::check()
не запускает тесты в интерактивном режиме.Я в тупике.Единственная функция expects...()
, о которой я мог подумать, это expect_message()
, потому что Listening on http:...
печатается в консоли во время работы приложения.
Как правильно проверить, что приложение запускается?
Для справки я посмотрел эту статью, но не смог воспроизвести методы: https://rtask.thinkr.fr/building-a-shiny-app-as-a-package/