2013-02-19 25 views
6

Vorrei creare un generatore personalizzato con l'ultima versione di yeoman, ma ho qualche difficoltà. Ho scavato varie fonti di documentazione ed esempi (come la webapp e i generatori angolari), ma ho ancora alcune domande.Generatore personalizzato Yeoman

  1. Qual è il flusso di lavoro per testare un generatore? Se ho un progetto che è il generatore stesso, continuo a creare nuove directory per eseguire yo my-generator?

  2. La struttura del generatore è stata modificata con la versione beta di yo 1.0? Ci sono stati cambiamenti di rottura?

  3. Come si registra un generatore con il binario globale yo?

Grazie.

risposta

6

Qual è il flusso di lavoro per testare un generatore?

Lavorerò su questo nei prossimi giorni per il generatore angolare. È possibile track my progress on Github. Sfortunatamente, non ci sono ancora molti esempi a causa della transizione da un comando yeoman all'utilizzo di yo insieme a bower e yo. Immagino che ci sarà un certo livello di test unitario sullo Generator.prototype.method, così come sul test E2E che prevede la scrittura di script bash per eseguire yo, npm, bower e grunt.

La struttura del generatore è stata modificata con la versione beta di yo 1.0? Ci sono stati cambiamenti di rottura?

Nella mia esperienza di porting su generatore-angolare, non ho visto troppe modifiche. È disponibile un nuovo simplified API opzionale, che potrebbe essere utile.

Come si registra un generatore con il binario globale yo?

La risposta adesso è che non è così. Installare/utilizzare i generatori in una directory di progetto. In qualche modo ho funzionato a causa di un link simbolico errante, ma non è il modo consigliato di farlo.

+0

grazie per la grande risposta. – frosty

7

questa domanda è di pochi mesi, ma penso che sia utile per tutti coloro che lo trova subito a sapere che molto di più è stato spiegato in http://yeoman.io/generators.html

Domanda 1:

Testare i generatori a livello locale può essere fatto facilmente. Per esempio se il generatore viene chiamato "Generatore-mtv-rap"

$ cd ~/dev/generator-mtv-raps/ 
$ npm link 

Ora, se lo fai:

$ cd ~/dev/mytest/ 
$ yo mtv-raps 

Sarà costruire.

Inoltre, l'unità di test del generatore con mocha è abbastanza semplice. C'è una serie di aiutanti di test incorporati. Le basi di ciò che è necessario per essere esaminati in rapporto può essere trovato nei test di generatore-webapp https://github.com/yeoman/generator-webapp/blob/master/test/test.js

  1. prova che il generatore può essere richiesto senza rompersi.
  2. Mock vostre richieste con helpers.mockPrompt
  3. prova che tutti i file che si desidera creati vengono creati tramite helpers.assertFiles
  4. prova che i valori delle richieste si schernivano vengono inseriti nei file creati.

Il numero 4 è un po 'complicato, l'array di file previsti può essere passato a un'espressione regolare da controllare. Se vuoi saperne di più sugli helper del test, la fonte è il posto migliore. https://github.com/yeoman/generator/blob/master/lib/test/helpers.js

Domanda 2: superato dalla btford

Domanda 3:

generatori sono tenuti a yo installandoli globale (o collegandoli come sopra) e con una convenzione di denominazione. Tutti i generatori iniziano con "generatore", quindi "-" quindi "nome".

quindi generator-mtv-raps accedere tramite $ yo mtv-raps

+0

TY mi hai salvato ore! – Nick

+0

Il collegamento alla pagina del generatore è interrotto. Basta andare al sito principale http://yeoman.io/ –