Domanda

Questa sembra essere questione molto semplice, ma io sono buttato giù. Come testare questi script quale ha scritto per l'aggancio scopo.

Come sappiamo che lo script è in esecuzione in background e unico errore sta gettando di nuovo su di noi da console SVN. Ho provato con punto di interruzione, ma non c'è niente che possa fornire un contributo allo script.

Qualcuno ha qualche idea in proposito. Sto scrivendo script di aggancio svn sulle finestre tanti script di aggancio già scritti o non in esecuzione o non dare output desiderato ad esempio il controllo mime-type e sceneggiatura EOL da Apache.

È stato utile?

Soluzione

posso darti un consiglio:

  • È necessario stampare su un STDERR. Questo è l'unico modo in cui lo script verrà segnalare errori a voi. È possibile utilizzare questo per il test vero e proprio.
  • ho scritto il mio pre-commit script per prendere sia un -t o un parametro di riga di comando -r. Nell'eseguire come un gancio pre-commit, posso utilizzare il parametro -t per passare nel numero di transazione. Quando si esegue dalla riga di comando, è possibile utilizzare il parametro -r e dargli un numero di revisione per correre contro.
  • Ho anche scritto una funzione debug che mi ha permesso di stampare le informazioni quando ho creato un parametro di riga di comando -debug. Ho potuto girare questo on e off.
  • Se si sta in realtà testando il tuo gancio, utilizzare una copia del repository, e assicurarsi che lo script di shell pre-commit fallirà terminando con un codice di uscita 2. Non sarai mai commettere la transazione, ma si otterrà i messaggi nello script pre-commit ciò che sta accadendo (ovvero, se si stampa tutto per STDERR).

Potete guardare gli script hook che sto in via di sviluppo per ottenere alcune idee. Io uso il modulo Perl Data::Dumper che può aiutare a stampare strutture dati nel mio script.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top