Skip to Content
TestingStandaardtests

Standaardtests

Testen staat standaard aan in een genormaliseerd recept, met vier vooraf gedefinieerde testnamen: boot, login, packages en network. Dit zijn kleine gastcontroles, geen volledige acceptatiesuite. Een recept kan testen uitschakelen of de lijst vervangen, en sommige artefacttypen hanteren een smaller contract.

Wat de defaults echt bewijzen

TestUitgevoerde controleBewijst niet
bootuptime eindigt succesvol via de QEMU guest agentElk bootloaderpad, hardware-boot of afwezigheid van kernelwaarschuwingen
loginwhoami kan draaien via het root guest-agent-kanaalInteractief wachtwoord, SSH-sleutel, PAM, desktop-greeter of login van eindgebruiker
packagesEen van dpkg --list, rpm -qa of pacman -Q slaagtDat elk door de prompt gevraagd pakket is geïnstalleerd
networkDNS lost example.com op en een TCP-verbinding naar poort 443 slaagt na begrensde retriesAlgemene internetgezondheid, HTTP-inhoud, elke interface of een air-gapped ontwerp

Het Ubuntu 24.04 CIS-pad verwijdert de generieke netwerkcontrole en gebruikt in plaats daarvan zijn readiness-gated feature assertion. Een recept zonder verwachte internetroute kan een mislukte generieke netwerkcontrole laten omzetten in een waarschuwing.

Feature- en capability-controles

De runner voegt ook controles samen uit ingeschakelde feature-metadata, legacy hook test files, het frozen capability plan, expliciete custom tests en benchmark tests. Dubbele assertions worden verwijderd. Assertions met bekende ontbrekende parameters worden gedropt met een serverwaarschuwing; controleer het resulterende testplan zodat een gedropte controle niet voor een geslaagde test wordt aangezien.

Voorbeelden zijn de geconfigureerde SSH-poort, servicestatus, een gevraagd pakket of een receptspecifiek artefact. Dekking hangt af van de ingeschakelde feature: een feature opnemen garandeert op zichzelf geen volledige set assertions voor die feature.

Het resultaat lezen

Gebruik de assertionrijen en het bewijs, niet alleen de aggregate badge:

  • passed betekent dat de uitvoerbare controle het verwachte resultaat teruggaf.
  • failed betekent dat de controle draaide en in tegenspraak was met de verwachting.
  • error betekent dat de harness geen verdict kon produceren.
  • skipped betekent dat de controle niet draaide, bijvoorbeeld omdat de doel-VM ontbrak.

Errors en skips zijn geen passes. Een voltooide image en een geslaagde testrun zijn aparte toestanden; certificering is een derde poort.

Sterkere acceptatiecriteria definiëren

Voor een echte workload voeg je prompt-relevante assertions toe. Bijvoorbeeld:

{ "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 } } ] }

Inspecteer vervolgens de gebouwde image in de console en test claims die aan hardware gebonden zijn op representatieve hardware. Zie Eigen assertions en Assertietypen.