Standardtester
Testning är aktiverad som standard i ett normaliserat recept, med fyra
fördefinierade testnamn: boot, login, packages och network. Det här är
små gästkontroller, inte en fullständig acceptanssvit. Ett recept kan stänga
av testning eller ersätta listan, och vissa artefakttyper använder ett
smalare kontrakt.
Vad standardtesterna faktiskt visar
| Test | Utförd kontroll | Visar inte |
|---|---|---|
boot | uptime avslutas med framgång via QEMU guest agent | Varje bootloader-sökväg, hårdvaruboot eller frånvaro av kernelvarningar |
login | whoami kan köras via root guest-agent-kanalen | Interaktivt lösenord, SSH-nyckel, PAM, skrivbordsgreeter eller slutanvändarinloggning |
packages | Ett av dpkg --list, rpm -qa eller pacman -Q lyckas | Att varje paket som begärdes i prompten är installerat |
network | DNS löser example.com och en TCP-anslutning till port 443 lyckas efter begränsade retries | Allmän internethälsa, HTTP-innehåll, varje gränssnitt eller en air-gapped design |
Ubuntu 24.04 CIS-sökvägen tar bort den generiska nätverkskontrollen och använder i stället sin readiness-gated feature assertion. Ett recept utan förväntad internetväg kan få en misslyckad generisk nätverkskontroll omvandlad till en varning.
Feature- och capability-kontroller
Runnern slår också ihop kontroller från aktiverad feature-metadata, legacy hook test files, frozen capability plan, explicita custom tests och benchmark tests. Dubbla assertions tas bort. Assertions med kända saknade parametrar droppas med en servervarning; granska resulterande testplan så att en droppad kontroll inte misstas för en pass.
Exempel är konfigurerad SSH-port, tjänstestatus, begärt paket eller receptspecifik artefakt. Täckning beror på aktiverad feature: att inkludera en feature garanterar inte i sig ett fullständigt assertion-set för den featuren.
Läsa resultatet
Använd assertion-raderna och evidence, inte bara aggregate badge:
passedbetyder att den körbara kontrollen returnerade förväntat resultat.failedbetyder att kontrollen kördes och motsade förväntan.errorbetyder att harness inte kunde producera ett verdict.skippedbetyder att kontrollen inte kördes, till exempel för att mål-VM saknades.
Errors och skips är inte passes. En färdig image och en passed test run är separata tillstånd; certifiering är en tredje grind.
Definiera starkare acceptanskriterier
För en verklig workload, lägg till prompt-relevanta assertions. Till exempel:
{
"description": "Nginx serves the local health endpoint",
"assertions": [
{
"type": "service_running",
"description": "Nginx is active",
"params": { "service": "nginx" }
},
{
"type": "http_responds",
"description": "Health endpoint returns 200",
"params": { "url": "http://localhost/health", "status": 200 }
}
]
}Inspectera sedan den byggda imagen i konsolen och testa hardware-bound claims på representativ hårdvara. Se Egna assertioner och Assertionstyper.