Test End to End
Testando l'integrità dei componenti di React pubblicando in un registro privato
La fase finale di un componente React è quando viene pubblicato e distribuito. Come posso assicurarmi che i miei pacchetti non crasheranno in produzione? Quest'attività ti aiuterà a testare i tuoi componenti React pubblicandoli in un registro privato ed eseguendo test End-to-End contro di essi.
End to End e Verdaccio
Alcuni progetti organizzano pacchetti in repository multi pacchetti o monorepo. L'argomento dei test end-to-end di solito riguarda principalmente le interfacce utente, ma nel caso di Node.js anche la fase di pubblicazione dei pacchetti deve essere testata.
Tale approccio è stato molto difficile da raggiungere considerando che:
- Popolare i pacchetti canary sui servizi pubblici sembra non essere una buona idea
- Alcuni registri auto ospitati OSS sono troppo pesanti
- Ambienti offline (reti private)
Verdaccio è un registro leggero senza configurazione che si adatta perfettamente a qualsiasi E2E + CI workflow.
Implementazione
Non è ancora disponibile la soluzione perfetta, ogni implementazione sembra essere specifica per ciascun progetto; è possibile consultarne alcune nel thread seguente cliccando qui.
Esempi in Open Source
I seguenti progetti consentono esempi che usano Verdaccio in Open Source
Esempi di Bash
- Babel.js (+35k ⭐️)
- Docusaurus (+31k ⭐️)
- create-react-app (+73.5k ⭐️)
- Uppy (+21k ⭐️)
- ethereum/web3.js (+8k ⭐️)
- adobe react-spectrum (+6k ⭐️)
- Mozilla Neutrino (+3k ⭐️)
This is the most simple example using Verdaccio in a bash script (extracted from create-react-app).
#!/bin/sh
set -e
local_registry="http://0.0.0.0:4873"
# start local registry
tmp_registry_log=`mktemp`
sh -c "mkdir -p $HOME/.config/verdaccio"
sh -c "cp --verbose /config.yaml $HOME/.config/verdaccio/config.yaml"
sh -c "nohup verdaccio --config $HOME/.config/verdaccio/config.yaml &>$tmp_registry_log &"
# wait for `verdaccio` to boot
grep -q 'http address' <(tail -f $tmp_registry_log)
# login so we can publish packages
sh -c "npm-auth-to-token -u test -p test -e test@test.com -r $local_registry"
# Run nmp command
sh -c "npm --registry $local_registry publish"
Esempi del Docker
Programmatically Examples
Modulo di Verdaccio
Tramite CLI:
- Aurelia Framework (+12k ⭐️)
- Netlify CLI (+1k ⭐️)
- Embark (+3k ⭐️)
- Microsoft Beachball
Esempi di child_process
in node.js
- Angular CLI (+25k ⭐️)
- bit (+6k ⭐️)
- pnpm (+6k ⭐️)
- aws-sdk cli v3 (+1k ⭐️)
- angular-eslint (+1k ⭐️)