es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

R/Shiny – El intérprete Shinytest JS no puede trabajar con Promise y tiene un estándar de JS antiguo.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Quiero usar el paquete R shinytest para probar mi aplicación R / Shiny. Ahora, me enfrento a un problema extraño tras otro. Parece que el intérprete de JavaScript de “shinytest” o el que se ejecuta en segundo plano no puede trabajar con Promise, ni siquiera cosas simples como ‘a’.startsWith (‘a’) no funcionan.

¿Puedo cambiar el backend de shinytest o puedo agregar de alguna manera las características faltantes de JavaScript?

A continuación se muestra un ejemplo mínimo, la aplicación en sí no tiene significado, pero el código JavaScript que se ejecuta dentro del conjunto de pruebas muestra que las llamadas simples fallan.

Para ejecutar el ejemplo, puede ser necesario instalar el paquete “globals”. Como renv::install(“globals”).

Ejemplo:

biblioteca (brillante)
biblioteca (shinytest)

puede que necesite ejecutar:

renv::install(“globals”)

interfaz de usuario <- fluidPage (
titlePanel (“¡Hola brillante!”),
sidebarLayout (
sidebarPanel (),
panel principal ()
)
)

Definir la lógica del servidor necesaria para dibujar un histograma —-

servidor <- función (input, salida) {}

Vea arriba las definiciones de ui y servidor

aplicación <- shinyApp (ui = ui, servidor = servidor)

testapp <- ShinyDriver $ new (app, debug = “all”)

testapp $ executeScript (“console.log (‘Hola’)”)
print (testapp $ getDebugLog (“navegador”))
testapp $ executeScript (“console.log (‘a’.startsWith (‘b’))”)
print (testapp $ getDebugLog (“navegador”))
testapp $ executeScript (“console.log (Promise)”)
print (testapp $ getDebugLog (“navegador”))

Los últimos mensajes de impresión siempre deben devolver la salida correcta. Pero los mensajes de error son:

B / I 12: 26: 40.26 Hello (:)> testapp $ executeScript (“console.log (‘a’.startsWith (‘b’))”)
Error en session_makeRequest (self, private, endpoint, data, params, headers):
undefined is not a function (evaluating ” a ‘.startsWith (‘ b ‘ ) ‘)

print (testapp $ getDebugLog (“navegador”))
testapp $ executeScript (“console.log (Promise)”)
Error en session_makeRequest (self, private, endpoint, data, params, headers):
Can’t find variable: Promise

Esto significa que Promises no están disponibles en este paquete shinytest.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no es posible cambiar el backend de shinytest o añadir las características faltantes de JavaScript. La única manera de utilizar Promise u otras características de JavaScript es mediante el uso de un paquete diferente.

Comments are closed.