Rilevanza dei casi di test
Motivazione
A volte un caso di test è rilevante solo per un ambiente specifico. La Rilevanza dei Casi di Test consente di filtrare ed escludere i casi di test non rilevanti.
Attuazione
La rilevanza dei casi di test è una funzione che accetta parametri di ambiente e restituisce True, False o un elenco di variabili d’ambiente.
Sintassi
La rilevanza dei casi di test è definita da una o più regole condizione: decisione.
Gli operatori consentiti sono: = == != < <= > >= &&. Tutto ciò che segue il simbolo # è considerato un commento e verrà ignorato.
Tutto è insensibile alle maiuscole/minuscole (case insensitive). La prima regola corrispondente prevale (termina immediatamente la valutazione della rilevanza, il resto delle regole verrà ignorato).
_Predefiniti
Se non viene specificata alcuna regola, la rilevanza del caso di test è impostata per impostazione predefinita su True, ovvero il caso di test è rilevante e deve essere eseguito.
Ambiente
I parametri accettabili che definiscono l’ambiente sono:
- Prodotto
-
nome del prodotto (rhel rhel-5 rhel-5.6 rhdts rhscl)
- Distro
-
nome del prodotto (rhel rhel-5 rhel-5.6 rhdts rhscl)
- variante
-
variante della distro (Client Desktop Server Workstation)
- Ricerca
-
architettura (i386 ppc64 s390x x86_64)
- collezione
-
collezione software (python27 python33 perl516…)
- Componente
-
componente da testare (php, apache, …)
Mentre distro viene sempre utilizzato per definire il sistema operativo su cui il software dovrebbe essere eseguito, product (prodotto) viene utilizzato per descrivere il prodotto di destinazione sottoscritto e consumato dal cliente (può essere un prodotto stratificato al di sopra di RHEL, come RHSCL, o RHEL stesso se il componente è incluso direttamente nel sistema operativo).
Il confronto tra le distribuzioni distro opera in due modalità:
- Major mode
-
Quando si effettua un confronto con una versione principale (major version), come ad esempio distro < rhel-6, vengono prese in considerazione le altre versioni principali (corrisponde a una qualsiasi tra rhel-3 rhel-4 rhel-5).
- Minor mode
-
Se viene fornita anche la versione secondaria (minor version), come ad esempio distro < rhel-6.3, il confronto viene eseguito esclusivamente all’interno della versione principale specificata (corrisponde a rhel-6.0 rhel-6.1 rhel-6.2).
Le regole che contengono parametri di ambiente non noti al momento della valutazione verranno ignorate.
Decisione
La parte decision della regola può contenere i seguenti valori:
- TrueHD
-
il caso di test è rilevante per l’ambiente dato
- falso
-
il caso di test non è rilevante per questo ambiente
- A=X B=Y C=Z
-
il caso di test è rilevante per l’ambiente modificato
L’ultima opzione sopra indicata consente di adattare l’ambiente in cui il caso di test deve essere eseguito, fornendo l’elenco delle variabili d’ambiente che verranno passate al test stesso.
Il valore di decision (decisione) può essere omesso. In tal caso, viene utilizzato True come impostazione predefinita. Pertanto, queste due righe definiscono un’esattezza di pertinenza identica:
distro > rhel-7: True distro > rhel-7
Esempi
mod_wsgi rilevante per RHEL6 e versioni successive:
distro < rhel-6: False
busybox non disponibile per s390x su RHEL6:
arch = s390x && distro = rhel-6: False
perl-Config-General non presente nella variante Client:
variant = Client: False
Eseguire gli unit test di Python sotto valgrind solo sulle architetture idonee:
arch = ia64: PHASES=novalgrind arch = s390x && distro < rhel-6: PHASES=novalgrind
Nuovo componente python-ctypes aggiunto in rhel-5.8:
distro < rhel-5: False distro < rhel-5.8: False
Exim presente esclusivamente in RHEL5:
distro != rhel-5: False
Want to help? Learn how to contribute to Fedora Docs ›