2015-01-03 13 views
8

Quando collaudo unità, tendo ad avere una directory chiamata test nella parte superiore della struttura del mio progetto, con la struttura di directory che imita la sorgente codice che deve essere testato. Tuttavia, queste directory possono ottenere abbastanza profondo, per esempioEvitare di richiedere (../../../ ..) percorsi relativi con granny mocha

app/src/js/models/User.js

magari con un test in

test/app/src/js/models/User.js.

Ora, quando voglio includere il modulo User.js, io uso require('../../../../../app/src/js/models/Users.js') che è molto macchinoso.

Idealmente, mi piacerebbe utilizzare require('/app/src/js/models/User.js') o forse anche require('User.js').

È possibile? Sto usando grunt-mocha-test, ma penso che la domanda sia più generale.

+2

Beh, puoi provare a mettere il tuo file di test in 'test/models/User.js' invece di' test/app/src/js/models/User.js', quindi puoi richiederlo con 'require ('.. /../ app/src/js/modelli/user.js') ' –

risposta

2

Ci sono più opzioni che è possibile utilizzare. La soluzione migliore sarebbe probabilmente utilizzare un modulo npm, ad esempio this one. Cerca il registore npm per richiede, ci sono un sacco di opzioni, quindi scegli quello che si adatta alle tue esigenze.

In alternativa, è possibile scrivere una funzione di supporto che faccia qualcosa di simile.

Se stai cercando un modo nativo (integrato in Node.js) per raggiungere questo obiettivo, purtroppo non ce ne sono. Dovrai utilizzare una funzione personalizzata o un modulo npm per farlo in un modo piacevole e riutilizzabile.