La optimización de tests no está disponible en el sitio seleccionado () en este momento.
Información general
La optimización de tests ofrece una vista del estado de tu CI que prioriza los tests al mostrar métricas y resultados importantes de tus tests. Puede ayudarte a investigar los problemas de rendimiento y las fallas de tests que son más relevantes para tu trabajo, centrándose en el código del que eres responsable, en lugar de en los procesos que ejecutan tus pruebas.
Configuración
Selecciona una opción para configurar la optimización de tests en Datadog:
Además de los tests, la optimización de tests proporciona visibilidad para toda la fase de tests de tu proyecto.
Funciones compatibles
.NET
Java/JVM‑based
JavaScript
Python
Ruby
Swift
Go
JUnit Xml
Resultados precisos de tiempo/duración
Resolución de microsegundos en el tiempo de inicio y duración del test.
Trazas distribuidas en tests de integración
Los tests que realizan llamadas a servicios externos instrumentados con Datadog muestran la traza (trace) distribuida completa en tus detalles del test.
Informes basados en el Agent
Capacidad de brindar información de tests a través del Datadog Agent.
Informes sin Agent
Capacidad de brindar información de tests sin el Datadog Agent.
Visibilidad a nivel de conjunto de tests
Visibilidad para todo el proceso de prueba, incluidas sesiones, módulos, conjuntos y tests.
API manual
Capacidad de crear mediante programación eventos de visibilidad de CI para marcos de test que no son compatibles con la instrumentación automática de Datadog.
Propietario de código por test
Detección automática del propietario de un archivo de test basado en el archivo CODEOWNERS.
(parcialmente)
Inicio/fin del código fuente
Informe automático de las líneas de inicio y final de un test.
(solo inicio)
(solo inicio)
(solo inicio)
CI e información de Git
Recopilación automática de metadatos del entorno de Git y CI, como el proveedor de CI, el SHA de confirmación de Git o la URL del pipeline.
Capacidad para habilitar el Análisis del impacto de los tests, que omite de forma inteligente los tests en función de la cobertura del código y los metadatos de Git.
Los tests evalúan el comportamiento del código para un conjunto de condiciones dadas. Algunas de esas condiciones están relacionadas con el entorno en el que se ejecutan los tests, como el sistema operativo o el entorno de ejecución utilizado. El mismo código ejecutado bajo diferentes conjuntos de condiciones puede comportarse de manera diferente, por lo que los desarrolladores generalmente configuran sus tests para que se ejecuten en diferentes conjuntos de condiciones y validan que el comportamiento sea el esperado para todas ellas. Este conjunto específico de condiciones se denomina configuración.
En la optimización de tests, un test con varias configuraciones se trata como varios tests con un test independiente para cada configuración. En el caso de que una de las configuraciones falle, pero las otras no, solo esa combinación específica de test y configuración se marca como fallida.
Por ejemplo, supongamos que estás probando una única confirmación y tienes un test de Python que se ejecuta en tres versiones diferentes de Python. Si el test falla en una de esas versiones, ese test específico se marca como fallido, mientras que las otras versiones se marcan como aprobadas. Si repites los tests en la misma confirmación y ahora el test para las tres versiones de Python no falla, el test con la versión que falló anteriormente se marcará como aprobado y con defectos, mientras que las otras dos versiones permanecen aprobadas, sin que se detecte ninguna falla.
Probar los atributos de configuración
Cuando ejecutas tus tests con la optimización de tests, la biblioteca detecta e informa sobre el entorno en el que se ejecutan los tests como etiquetas (tags) de test. Por ejemplo, el nombre del sistema operativo, como Windows o Linux, y la arquitectura de la plataforma, como arm64 o x86_64, se agregan como etiquetas en cada test. Estos valores se muestran en las páginas de confirmación y de información general de la rama cuando un test falla o es defectuoso para una configuración específica, pero no para otras.
Las siguientes etiquetas se recopilan automáticamente para identificar configuraciones de test y algunas pueden aplicarse solo a plataformas específicas:
Nombre de la etiqueta
Descripción
os.platform
Nombre del sistema operativo en el que se ejecutan los tests.
os.family
Familia del sistema operativo donde se ejecutan los tests.
os.version
Versión del sistema operativo donde se ejecutan los tests.
os.architecture
Arquitectura del sistema operativo donde se ejecutan los tests.
runtime.name
Nombre del sistema de ejecución de los tests.
runtime.version
Versión del sistema de ejecución.
runtime.vendor
Proveedor que compiló la plataforma de ejecución en la que se ejecutan los tests.
runtime.architecture
Arquitectura del sistema de ejecución de los tests.
device.model
El modelo de dispositivo que ejecuta los tests.
device.name
Nombre del dispositivo.
ui.appearance
Estilo de la interfaz de usuario.
ui.orientation
Orientación en la que se ejecuta la interfaz de usuario.
ui.localization
Lenguaje de la solicitud.
Configuraciones de tests parametrizados
Cuando se ejecutan tests parametrizados, la biblioteca detecta y genera información sobre los parámetros utilizados. Los parámetros son parte de la configuración del test, por lo que el mismo caso de test ejecutado con diferentes parámetros se considera como dos pruebas diferentes en la optimización de tests.
Si un parámetro de test no es determinista y tiene un valor diferente cada vez que se ejecuta un test, cada ejecución de test se considera un nuevo test en la optimización de tests. Como consecuencia, es posible que algunas funciones del producto no funcionen correctamente para dichos tests: historial de ejecuciones, detección de defectos, análisis del impacto de los tests y otras.
Algunos ejemplos de parámetros de test no deterministas son:
fecha actual
un valor aleatorio
un valor que depende del entorno de ejecución del test (como una ruta de archivo absoluta o el nombre de usuario actual)
un valor que no tiene una representación de cadena determinista (por ejemplo, una instancia de una clase Java cuyo método toString() no se anula)
Evita utilizar parámetros de test no deterministas. En caso de que esto no sea posible, algunos marcos de test ofrecen una forma de especificar una representación de cadena determinista para un parámetro no determinista (como anular el nombre de visualización del parámetro).
Configuraciones personalizadas
Hay algunas configuraciones que no se pueden identificar directamente ni informar de forma automática porque pueden depender de variables de entorno, argumentos de ejecución de tests u otros enfoques que utilizan los desarrolladores. En esos casos, debes proporcionar los detalles de configuración a la biblioteca para que la optimización de tests pueda identificarlos correctamente.
Define estas etiquetas como parte de la variable de entorno DD_TAGS con el prefijo test.configuration.
Por ejemplo, las siguientes etiquetas de configuración de test identifican una configuración de test donde el tiempo de respuesta del disco es lento y la memoria disponible es baja:
Integra la optimización de tests con herramientas para informar datos de cobertura de código, mejorar los tests del navegador con RUM y acceder a información en todas las plataformas al agilizar la identificación y resolución de problemas en tu ciclo de desarrollo.
When Test Visibility is enabled, the following data is collected from your project:
Test names and durations.
Predefined environment variables set by CI providers.
Git commit history including the hash, message, author information, and files changed (without file contents).
Information from the CODEOWNERS file.
Al crear un dashboard o un notebook, puedes utilizar datos de tests CI en tu consulta de búsqueda, lo que actualiza las opciones del widget de visualización. Para obtener más información, consulta la documentación de Dashboards y Notebooks.
Alertas sobre los datos de los tests
Cuando estés evaluando tests fallidos o defectuosos, o el rendimiento de un test CI, puedes exportar tu consulta de búsqueda en el Explorador de optimización de tests a un monitor de tests CI haciendo clic en el botón Export.