Relevancia de Caso de Test
Motivación
A veces, un caso de prueba solo es relevante para un entorno específico. La relevancia del caso de prueba permite filtrar los casos de prueba irrelevantes.
Implementación
La relevancia del caso de prueba es una función que toma parámetros de entorno y devuelve Cierto`o `Falso o una lista de variables de entorno.
Sintaxis
La relevancia del caso de prueba se define mediante una o más reglas de condición: decisión.
Los operadores permitidos son: = == != < <= > >= &&. Cualquier valor que vaya más allá del signo # se considera un comentario y será ignorado.
Todo distingue capitalinas. La primera regla coincidente prevalece (termina inmediatamente la evaluación de relevancia; las demás reglas serán ignoradas).
Por defecto
Si hay especificada una regla, el caso de pruebe relevante por defecto para True, esto es caso de prueba es relevante y sería ejecutado.
Entorno
Los parámetros aceptables definiendo el entorno son:
- producto
-
nombre de producto (rhel rhel-5 rhel-5.6 rhdts rhscl)
- distribución
-
distribución (rhel-6 rhel-6.3 rhscl-1.0.0 f-28)
- variante
-
variante de distro (Estación de trabajo del servidor del escritorio del cliente)
- arch
-
arquitectura (i386 ppc64 s390x x86_64)
- colección
-
colección de software (python27 python33 perl516…)
- componente
-
componente a ser probado (php, apache, …)
Si bien distro siempre se usa para definir el sistema operativo en el que se supone que debe ejecutarse el software, product se usa para describir el producto de destino suscrito y consumido por el cliente (puede ser un producto en capas sobre RHEL, como RHSCL, o RHEL mismo si el componente está incluido directamente en el sistema operativo).
La comparación de distribuciones funciona en dos modos:
- Modo mayor
-
Al comparar con una versión principal como
distro < rhel-6se consideran otras versiones principales (coincide con cualquiera derhel-3 rhel-4 rhel-5). - Modo menor
-
Si también se proporciona una versión menor, por ejemplo,
distro < rhel-6.3, la comparación se realiza solo dentro de la versión principal dada (coincide conrhel-6.0 rhel-6.1 rhel-6.2).
Se omitirán las reglas que contengan parámetros de entorno que no se conocen en el momento de la evaluación.
Decisión
La parte decision de la regla puede contener los siguientes valores:
- Verdadero
-
el caso de prueba es relevante para el entorno dado
- Falso
-
el caso de prueba no es relevante para este entorno
- A=X B=Y C=Z
-
caso de prueba es relevante para el entorno modificado
La última opción anterior permite ajustar el entorno en el que se ejecutará el caso de prueba proporcionando la lista de variables de entorno que se pasarán a la prueba.
El valor de decisión puede omitirse. En tal caso, se usa True por defecto. Por lo tanto, estas dos líneas definen la misma relevancia:
distro > rhel-7: True distro > rhel-7
Ejemplos
mod_wsgi relevante para RHEL6 y posterior:
distro < rhel-6: False
busybox no disponible para s390x en RHEL6:
arch = s390x && distro = rhel-6: Falso
perl-Config-General no presente en la variante Client:
variant = Client: False
Ejecuta pruebas unitarias de Python bajo valgrind solo en arquitecturas adecuadas:
arch = ia64: PHASES=novalgrind arch = s390x && distro < rhel-6: PHASES=novalgrind
Nuevo componente python-ctypes agregado en rhel-5.8:
distro < rhel-5: False distro < rhel-5.8: False
Exim solo presente en RHEL5:
distro != rhel-5: False
Want to help? Learn how to contribute to Fedora Docs ›