Artículo
· 22 mayo, 2023 Lectura de 2 min

Pruebas unitarias para cuadros de mando y tablas dinámicas de BI en InterSystems IRIS

¡Hola Comunidad!

A menudo, las soluciones con InterSystems IRIS BI pueden convertirse en soluciones bastante grandes con docenas de tablas dinámicas y cuadros de mando.

Con cada nueva versión de IRIS BI podemos añadir cambios que pueden influir en el comportamiento de las tablas dinámicas y cuadros de mando existentes y que dejen de funcionar. Por ejemplo, si cambiamos el nombre de una medida o dimensión, olvidamos desplegar cubos o realizamos reestructuraciones con cambios masivos del nombre de los cubos y sus elementos, algunos widgets podrían dejar de funcionar.

La solución es probar (¿manualmente?) cada widget en cada cuadro de mando para asegurarnos de que las consultas MDX están funcionando.

Hoy quiero presentaros una herramienta para probar automáticamente todas las tablas dinámicas y los cuadros de mando.

Instalad el módulo isc-dev IPM creado por @Gevorg Arutiunian como:

USER>zpm "install isc-dev"

o mediante programación:

set sc=$zpm("isc-dev")

Nota: Necesitaréis tener el cliente IPM instalado. Si no lo tenéis, podéis usar la siguiente línea para instalarlo:

s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")

El módulo instalado isc-dev tiene dos métodos que pueden ayudar en pruebas automáticas. Este sirve para probar todas la tablas dinámicas:

set sc=##class(dev.bi).checkPivots()

Si hay problemas, el sc contendrá errores. 

También tiene la opción de parar en el primer error:

set sc=##class(dev.bi).checkPivots(1)

En este caso se os presentará la primera tabla dinámica que no funciona, que se muestra a través del log en el terminal.

Otra utilidad ayudará a comprobar todos los cuadros de mando:

set sc=##class(dev.bi).checkDashboards()

Controlará todos los widgets y la configuración de sus filtros.

Estas dos utilidades son muy prácticas para utilizarlas en pruebas unitarias. Este es un ejemplo de clase de prueba unitaria universal que recomiendo utilizar en cualquier solución IRIS BI:

Class dc.irisbi.unittests.TestBI Extends %UnitTest.TestCase
{

Method TestPivots()

{

Do $$$AssertStatusOK(##class(dev.bi).checkPivots(),"Test Pivots")

}


/// Test dashboards in BI package
Method TestDashboards()

{

Do $$$AssertStatusOK(##class(dev.bi).checkDashboards(),"Test Dashboards")

}

}

Y esta es la plantilla de proyecto que utiliza.

También podéis ver cómo funciona en este vídeo.

Espero que este artículo os resulte útil y os ahorre mucho tiempo!

¡Feliz desarrollo!

Comentarios (0)1
Inicie sesión o regístrese para continuar