* New translations logger.md (Japanese) docs(website): new translations * New translations logger.md (French) docs(website): new translations * New translations logger.md (German) docs(website): new translations * New translations kubernetes.md (Russian) docs(website): new translations * New translations kubernetes.md (Russian) docs(website): new translations * New translations kubernetes.md (Russian) docs(website): new translations * New translations en.json (German) docs(website): new translations * New translations en.json (German) docs(website): new translations * New translations windows.md (German) docs(website): new translations * New translations en.json (German) docs(website): new translations * New translations ansible.md (Portuguese, Brazilian) docs(website): new translations * New translations auth.md (Portuguese, Brazilian) docs(website): new translations * New translations en.json (Portuguese, Brazilian) docs(website): new translations * New translations cli.md (Vietnamese) docs(website): new translations * New translations docker.md (Vietnamese) docs(website): new translations * New translations dev-plugins.md (Vietnamese) docs(website): new translations * New translations docker.md (Vietnamese) docs(website): new translations * New translations build.md (Portuguese, Brazilian) docs(website): new translations * New translations ci.md (Portuguese, Brazilian) docs(website): new translations * New translations chef.md (Portuguese, Brazilian) docs(website): new translations * New translations auth.md (Portuguese, Brazilian) docs(website): new translations * New translations config.md (Portuguese, Brazilian) docs(website): new translations * New translations ci.md (Portuguese, Brazilian) docs(website): new translations * New translations ansible.md (Italian) docs(website): new translations * New translations ansible.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations build.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations build.md (Italian) docs(website): new translations * New translations build.md (Italian) docs(website): new translations * New translations chef.md (Italian) docs(website): new translations * New translations ci.md (Italian) docs(website): new translations * New translations chef.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Spanish) docs(website): new translations * New translations ci.md (Italian) docs(website): new translations * New translations ci.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations ci.md (Italian) docs(website): new translations * New translations build.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Korean) docs(website): new translations * New translations config.md (Vietnamese) docs(website): new translations * New translations config.md (Hindi) docs(website): new translations * New translations config.md (Portuguese) docs(website): new translations * New translations config.md (Russian) docs(website): new translations * New translations config.md (Spanish) docs(website): new translations * New translations config.md (Arabic) docs(website): new translations * New translations config.md (Chinese Simplified) docs(website): new translations * New translations config.md (Portuguese, Brazilian) docs(website): new translations * New translations config.md (Japanese) docs(website): new translations * New translations config.md (Polish) docs(website): new translations * New translations config.md (French) docs(website): new translations * New translations config.md (German) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations ci.md (Italian) docs(website): new translations * New translations chef.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations iis-server.md (Vietnamese) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations docker.md (Portuguese, Brazilian) docs(website): new translations * New translations config.md (Portuguese, Brazilian) docs(website): new translations * New translations docker.md (Portuguese, Brazilian) docs(website): new translations * New translations config.md (Portuguese, Brazilian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations en.json (Italian) docs(website): new translations * New translations web.md (Italian) docs(website): new translations * New translations web.md (Italian) docs(website): new translations * New translations web.md (Italian) docs(website): new translations * New translations web.md (Italian) docs(website): new translations * New translations config.md (Spanish) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations web.md (Italian) docs(website): new translations * New translations what-is-verdaccio.md (Italian) docs(website): new translations * New translations use-cases.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations ssl.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations * New translations ssl.md (Italian) docs(website): new translations * New translations ssl.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations ssl.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations auth.md (Italian) docs(website): new translations * New translations cli.md (Italian) docs(website): new translations * New translations ci.md (Italian) docs(website): new translations * New translations config.md (Italian) docs(website): new translations * New translations config.md (Chinese Simplified) docs(website): new translations * New translations web.md (Chinese Simplified) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations config.md (Chinese Simplified) docs(website): new translations * New translations contributing.md (Chinese Simplified) docs(website): new translations * New translations web.md (Chinese Simplified) docs(website): new translations * New translations contributing.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations contributing.md (Chinese Simplified) docs(website): new translations * New translations contributing.md (Chinese Simplified) docs(website): new translations * New translations install.md (Chinese Simplified) docs(website): new translations * New translations windows.md (Italian) docs(website): new translations * New translations install.md (Chinese Simplified) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations reverse-proxy.md (Italian) docs(website): new translations * New translations reverse-proxy.md (Italian) docs(website): new translations * New translations reverse-proxy.md (Italian) docs(website): new translations * New translations reverse-proxy.md (Italian) docs(website): new translations * New translations repositories.md (Italian) docs(website): new translations * New translations reverse-proxy.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Italian) docs(website): new translations * New translations logo.md (Chinese Simplified) docs(website): new translations * New translations en.json (Chinese Simplified) docs(website): new translations * New translations logo.md (Chinese Simplified) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations reverse-proxy.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations uplinks.md (Italian) docs(website): new translations * New translations ssl.md (Italian) docs(website): new translations * New translations ssl.md (Italian) docs(website): new translations * New translations repositories.md (Italian) docs(website): new translations * New translations server.md (Italian) docs(website): new translations * New translations puppet.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations protect-your-dependencies.md (Italian) docs(website): new translations * New translations plugins.md (Italian) docs(website): new translations * New translations test.md (Italian) docs(website): new translations
4.5 KiB
id | title |
---|---|
unit-testing | Test Unità |
Tutti i test sono divisi in tre cartelle:
test/unit
- Test che coprono le funzioni che trasformano i dati in modo non banale. Questi testrequire()
necessitano semplicemente alcuni file ed eseguono il codice in essi, quindi sono molto rapidi.test/functional
- Test che lanciano un'istanza di verdaccio e realizzano una serie di richieste a essa su http. Sono più lenti dei test unità.test/integration
- Test che lanciano un'istanza di verdaccio e fanno richieste a essa usando npm. Sono considerevolmente lenti e possono raggiungere un registro npm reale. test non mantenuto
I test unità e funzionali vengono eseguiti automaticamente all'avvio di npm test
dalla cartella principale del progetto. I test di integrazione vanno eseguiti manualmente di volta in volta.
Usiamo jest
per tutti i test.
Lo Script npm
Per eseguire lo script del test si può utilizzare sia npm
che yarn
.
yarn run test
Questo azionerà solo i primi due gruppi di test, unità e funzionale.
Utilizzo di test/unit
Il seguente è solo un esempio di come dovrebbe vedersi un test unità. Fondamentalmente seguire il jest
standard.
Provare a descrivere cosa fa esattamente il test unità in una sola frase nell'intestazione della sezione test
.
const verdaccio = require('../../src/api/index');
const config = require('./partials/config');
describe('basic system test', () => {
beforeAll(function(done) {
// something important
});
afterAll((done) => {
// undo something important
});
test('server should respond on /', done => {
// your test
done();
});
});
Utilizzo di test/functional
Il test funzionale in verdaccio presenta un maggior livello di complessità che necessita di una spiegazione esaustiva per assicurarti un'esperienza positiva.
Tutto inizia nel file index.js
. Andiamo ad analizzarlo da vicino.
// we create 3 server instances
const config1 = new VerdaccioConfig(
'./store/test-storage',
'./store/config-1.yaml',
'http://localhost:55551/');
const config2 = new VerdaccioConfig(
'./store/test-storage2',
'./store/config-2.yaml',
'http://localhost:55552/');
const config3 = new VerdaccioConfig(
'./store/test-storage3',
'./store/config-3.yaml',
'http://localhost:55553/');
const server1: IServerBridge = new Server(config1.domainPath);
const server2: IServerBridge = new Server(config2.domainPath);
const server3: IServerBridge = new Server(config3.domainPath);
const process1: IServerProcess = new VerdaccioProcess(config1, server1, SILENCE_LOG);
const process2: IServerProcess = new VerdaccioProcess(config2, server2, SILENCE_LOG);
const process3: IServerProcess = new VerdaccioProcess(config3, server3, SILENCE_LOG);
const express: any = new ExpressServer();
...
// we check whether all instances has been started, since run in independent processes
beforeAll((done) => {
Promise.all([
process1.init(),
process2.init(),
process3.init()]).then((forks) => {
_.map(forks, (fork) => {
processRunning.push(fork[0]);
});
express.start(EXPRESS_PORT).then((app) =>{
done();
}, (err) => {
done(err);
});
}).catch((error) => {
done(error);
});
});
// after finish all, we ensure are been stoped
afterAll(() => {
_.map(processRunning, (fork) => {
fork.stop();
});
express.server.close();
});
Utilizzo
Qui andremo a descrivere come dovrebbe apparire un test funzionale tipico.
Il lib/server.js
La classe server è solamente un wrapper che simula un npm
client e fornisce un API semplice per il test funzionale.
Come abbiamo menzionato nella sezione precedente, stiamo creando 3 server di processo che siano accessibili in ogni processo come server1
, server2
e ``server3`.
Usando queste referenze sarai in grado di inviare richieste a ognuna delle 3 istanze in esecuzione.
<br />export default function(server) {
// we recieve any server instance via arguments
test('add tag - 404', () => {
// we interact with the server instance.
return server.addTag('testpkg-tag', 'tagtagtag', '0.0.1').status(404).body_error(/no such package/);
});
});
Test/integration
Questa sezione non è ancora mai stata usata, ma stiamo cercando aiuto per farla funzionare a dovere. Ogni nuova idea è benvenuta