
Andrew Hanna

Andrew Hanna

Een Salesforce-testautomatiseringspipeline draait je Apex- en Lightning Web Component-tests automatisch bij elke commit, voordat code de productie bereikt. Een werkende opzet koppelt een git-repository aan een CI-runner, start een scratch org of sandbox, deployt de metadata, draait de tests en laat de build falen als de coverage onder de 75 procent zakt die Salesforce vereist. Deze gids doorloopt de hele pipeline, van eerste testniveau tot de valkuilen die teams vertragen.
Continuous integration (CI) is de praktijk om elke wijziging te valideren zodra die binnenkomt, in plaats van bij een release-poort. Voor Salesforce betekent dat een pipeline die je geautomatiseerde tests draait bij elke push of pull request en de merge blokkeert als iets faalt. Het doel is shift-left testen: een kapotte trigger of falende assertion binnen minuten op een branch vangen, niet tijdens een releaseavond in productie.
Salesforce hanteert een harde regel die dit onmisbaar maakt: voordat je Apex naar productie kunt deployen, moeten je tests slagen en heb je minstens 75 procent code coverage nodig. CI is hoe je dat continu groen houdt in plaats van te improviseren bij de deploy.
Een bruikbare Salesforce-suite is gelaagd. Streef ernaar te dekken, snelste eerst:
@salesforce/sfdx-lwc-jest. Deze zijn snel en draaien
zonder org.
Draai Apex en Jest bij elke commit omdat ze snel zijn, en bewaar tragere UI-end-to-end-checks voor een nachtelijke fase. Onze gids over wat je per pull request draait en wat 's nachts werkt die splitsing uit.
De onderdelen zijn hetzelfde of je nu GitHub Actions, GitLab CI of Jenkins gebruikt. Een minimale pipeline doet dit bij elke pull request:
sf project deploy start.sf apex run test --test-level RunLocalTests --code-coverage --result-format
human, en draai npm run test:unit voor LWC Jest.
Salesforce publiceert een officiele uitleg over Salesforce DX met GitHub Actions die netjes op deze stappen aansluit.
Het testniveau bepaalt hoeveel er draait en hoe lang de build duurt:
RunLocalTests draait elke test in de org behalve die uit geïnstalleerde
managed packages, en is de veilige standaard voor een validatiepipeline.
RunSpecifiedTests draait alleen genoemde classes, handig voor snelle
branch-feedback maar riskant als productiepoort omdat het coverage kan missen.
RunRelevantTests verscheen in beta in de Spring
'26-release om deploys te verkorten door alleen de tests te draaien die door een
wijziging worden geraakt; behandel het als beta tot je het tegen je suite hebt
gevalideerd.
Kies voor de merge-blokkerende build bij voorkeur RunLocalTests zodat de
coverage echt is. Gebruik specified of relevant tests alleen voor snelle,
niet-blokkerende feedback eerder in de branch.
Drie fouten verklaren de meeste vastgelopen pipelines:
Jagen op het getal van 75 procent in plaats van echte assertions. Coverage zonder assertions haalt de poort en levert toch bugs.
De andere twee zijn onbetrouwbare testdata en een suite die te traag wordt om bij elke
commit te draaien. Los de eerste op door testdata binnen elke test aan te maken met
een factory-patroon en @testSetup, en nooit op org-data te leunen. Los de
tweede op door snelle unittests te scheiden van trage end-to-end-tests, zodat feedback
onder een paar minuten blijft waar het het meest telt. Tooling uit de Salesforce
DevOps-categorie, waaronder Copado, Gearset, Salto, AutoRABIT, Flosum en Blue Canvas,
kan deze stappen in een beheerde pipeline verpakken als je de YAML liever niet met de
hand bouwt.
Voor meer Salesforce DevOps-handleidingen, zie onze resourcesbibliotheek.
Welke code coverage vereist Salesforce om te deployen?
Minstens 75 procent org-brede Apex-coverage, en elke test moet slagen. CI houdt dit continu groen in plaats van een tekort te ontdekken bij de deploy.
Heb ik scratch orgs nodig voor Salesforce CI?
Nee, maar ze helpen. Scratch orgs geven elke build een schone, wegwerpbare omgeving. Een dedicated CI-sandbox werkt ook als source tracking en reset zorgvuldig worden beheerd.
Hoe test ik Lightning Web Components in CI?
Gebruik de Jest-gebaseerde runner @salesforce/sfdx-lwc-jest. Die draait
componenttests lokaal zonder org, snel genoeg voor elke commit.
Welke CI-tool is het beste voor Salesforce?
GitHub Actions, GitLab CI en Jenkins werken allemaal goed met de Salesforce CLI. De runner telt minder dan een schone pipeline: authenticeren, deployen, tests draaien, blokkeren, opruimen.
Vrijblijvend.