Apex-testfouten en codedekkingsfouten in Salesforce-deployments oplossen
Productie-deployments vereisen geslaagde Apex-tests en minimaal 75% codedekking, en Salesforce blokkeert de release totdat aan beide is voldaan.
Komt voor bij: deployment naar productie of een volledige sandbox-refreshWat het betekent
Salesforce vereist dat deployments naar productie Apex-tests uitvoeren en een gemiddelde codedekking van minstens 75% behalen over alle classes en triggers, waarbij elke trigger enige dekking nodig heeft. Een deployment mislukt, met een overzicht van de assertion of exception van elke mislukte test, zodra een test een onafgehandelde exception gooit, een assertion faalt, of de gemiddelde dekking van de org onder die drempel zakt.
Dit gate alleen deploys naar productie en volledige sandboxes met RunLocalTests of RunAllTestsInOrg; deploys naar Developer sandboxes of scratch orgs met NoTestRun slaan de vereiste volledig over, wat precies de reden is waarom dekkingshiaten pas op de releasedag worden opgemerkt.
Veelvoorkomende oorzaken
De oplossing
- Reproduceer de fout eerst lokaalVoer de volledige lokale testsuite met dekking uit tegen je sandbox voordat je de code aanraakt, zodat je de echte fout debugt en niet een verouderd deploylog.
sf apex run test --test-level RunLocalTests --code-coverage --result-format human --wait 20 - Schrijf tests voor nieuwe code voordat je deploytVoeg testmethoden toe die nieuwe classes en triggers uitoefenen, zodat de gemiddelde dekking van de org vóór de release boven de 75% uitkomt.
- Maak tests zelfstandigHerschrijf tests zodat ze hun eigen testdata aanmaken met @TestSetup of Test.startTest(), in plaats van te vertrouwen op records die toevallig in de doel-org bestaan.
Hoe Serpent dit voorkomt
De VS Code-extensie van Serpent toont testresultaten en dekking direct op de taak zelf, zodat een dekkingshiaat of mislukte assertion zichtbaar is voordat een taak wordt ingediend, in plaats van pas tijdens een productie-deploy te worden ontdekt. Zie de Salesforce-deploymentfoutenbibliotheek.
Preventie
Gerelateerde fouten
APEX TEST FAILURES, beantwoord
Start gratis. Geen creditcard, geen installatie, geen verplichting.
Binnen 15 minuten ingesteld. Geen DevOps-aanwerving nodig.
