
Serpent Team

Andrew Hanna

Kort antwoord: draai op elke pull request alleen de snelle en deterministische checks: statische analyse op de diff, LWC Jest, en een validate-only deltadeployment die alleen de Apex-tests draait die de gewijzigde code dekken. Zet alles wat traag of instabiel is, volledige org-testruns, UI-scenario's en externe integraties, in een nachtelijke job. Mik op een uitslag binnen tien minuten, want daarna leest niemand hem nog.
Eén regel beheerst deze lijst: alles op de PR-poort moet deterministisch zijn. Eén instabiele test leert het team op opnieuw uitvoeren te drukken, en een poort die mensen net zo lang herhalen tot hij groen is, is decoratie.
Nachtelijke fouten worden bij de koffie getrieerd. Dat is precies de bedoeling: ze staan niet tussen een developer en zijn merge.
Vier niveaus, en de keuze per fase is het grootste deel van het ontwerp (Metadata API-gids).
NoTestRun: prima binnen een scratch org, nooit op een pad naar
productie.
RunSpecifiedTests: je PR-poort. Eén valkuil is het weten waard: op dit
niveau moet elke klasse en trigger in het pakket afzonderlijk 75% dekking
halen, per component berekend en niet org-breed (Salesforce-documentatie).
RunLocalTests: alles behalve tests uit managed packages. Dit draait
standaard bij een productiedeployment met Apex erin.
RunAllTestsInOrg: inclusief managed package-tests. Zelden wat je wilt,
en traag.
De platformregels eronder veranderen niet: minstens 75% van je Apex moet gedekt zijn om naar productie te deployen, elke trigger heeft minstens één gedekte regel nodig, en elke test die draait moet slagen, wat het dekkingspercentage ook zegt (Salesforce Help).
Niet op de pull request. UI-tests zijn het traagste en broosste onderdeel van een Salesforce-pipeline: shadow DOM in Lightning-componenten, gegenereerde element-id's en inlogprompts breken selectors om redenen die niets met de beoordeelde wijziging te maken hebben.
Wat wel werkt: een kleine smoke-set van vijf tot tien kritieke scenario's na de merge naar de integratiebranch, en de volledige suite 's nachts. Praktische regel: faalt een UI-test twee keer om andere redenen dan het product, dan is het onderhoud en geen poort.
Deze gids maakt deel uit van onze Salesforce DevOps-gidsen.
Hoe snel moet een Salesforce-PR-check zijn?
Onder de tien minuten van begin tot eind. Daarna schakelen developers om, lezen ze de uitvoer niet meer, en verandert de check geen gedrag meer.
Moeten we alle Apex-tests op elke pull request draaien?
Nee. Draai de tests die de gewijzigde klassen dekken met
RunSpecifiedTests, en houd de volledige lokale run voor de nachtelijke
job en de releasevalidatie.
Welke dekking vereist Salesforce echt?
75% van je Apex org-breed om naar productie te deployen, minstens één gedekte regel
per trigger, en elke uitgevoerde test moet slagen. Bij
RunSpecifiedTests heeft elke klasse en trigger in het pakket afzonderlijk
75% nodig.
Hebben LWC Jest-tests een Salesforce-org nodig?
Nee. Ze draaien buiten het platform in Node, en precies daarom horen ze op de PR-poort en niet in de nachtelijke job.
Waar horen UI-tests te draaien?
Een kleine smoke-set na de merge, de volledige suite 's nachts. Ze op de pull request zetten is de snelste manier om een team te leren een rode build te negeren.
Vrijblijvend.