2016-05-17 32 views
5

ho trovato la pagina Jasmine 2.4 di testing node.js files su, e si parla anche l'impostazione dei file spec e sorgenti in/supporto di file spec/jasmine.json. Ma né gli esempi online il jasmine examples mostrano nulla su come dire a gelsomino dove trovare i file sorgente.Come impostare i file di origine in jasmine.json con Jasmine 2

Quindi continuo ad ottenere ReferenceErrors perché non sembra che stia leggendo nei miei file sorgenti. Dovrebbe essere notato che per ora sto solo usando questo per insegnare ad alcuni studenti sul test e usando i loro progetti di giocattoli a file singolo per esercitarsi. (Come un CLI Hangman Game, questo genere di cose.) Quindi per ora non ci sono moduli.exports in corso, sebbene alcuni dei loro progetti utilizzino lo require() per introdurre moduli di terze parti. Stavo usando Karma fino a quando ho capito che doveva essere solo per il browser JavaScript, e require continuava a fallire.

Edit: Ho appena scoperto this post che chiede fondamentalmente la stessa cosa, ma io non voglio usare grugnito solo per fare Jasmine leggere in un file sorgente. Sembra qualcosa che dovrebbe essere integrato, come il modo in cui Karma chiede dove sono i tuoi file sorgente e spec.

Seconda Modifica: non avrei dovuto mettere questo qui, ma Emarco segnato la mia domanda come un duplicato di quello che ho linkato nella mia prima immissione sopra, anche se in modo molto specifico spiegato perché che altri doesn pubblicare rispondo alla mia domanda

+0

Eventuali duplicati di [Jasmine js: Aggiungi metodo di fonte per l'esecuzione di test] (http://stackoverflow.com/ domande/27154475/jasmine-js-add-source-method-for-test-execution) – Emarco

+0

Chiaramente non hai letto tutto il mio post @Emarco. Avevo persino menzionato in modo specifico il motivo per cui il post che hai indicato non risponde alla mia domanda. – bobbyz

+0

Bene, ho letto il post e ho dato una risposta ma dato che stavo dando quasi la stessa risposta per l'altra domanda, è stato cancellato da un moderatore e mi è stato chiesto di contrassegnarlo come duplicato (capisco che la risposta validata di l'altra domanda non ti aiuta, non mi ha aiutato neanche, ma come dici tu nella tua modifica il problema è lo stesso in entrambi i casi, mi chiedo se c'è un modo speciale per gestire questa situazione) – Emarco

risposta

-1

Sul file spec/support/jasmine.json, è necessario avere e oggetto, con una spec_dir e spec_files atributes.

{ 
    "spec_dir": "spec", 
    "spec_files": [ 
    "fooSpec.js", 
    "barSpec.js" 
    ] 
} 

gelsomino utilizzerà il spec_dir prefisso tuoi spec_files oggetti ed eseguire le prove. Per un fooSpec.js, quando si esegue jasmine sul BASE_DIR per voi progetto, i test stanno andando a correre per BASE_DIR/spec/fooSpec.js e BASE_DIR/spec/barSpec.js

+2

Non solo hanno non hai risposto alla domanda dell'OP, ma hai anche risposto alla parte che l'OP conosce e in particolare non vuole. – EnKrypt

0

Purtroppo, gli sviluppatori di gelsomino sembrano fare affidamento su grugnito o altri strumenti da utilizzare gelsomino. Come hai già detto, l'unico modo per farlo funzionare senza grunt o karma è usare require.js.

Inserisci il file require.js da here nel tuo index.html.

Basta richiedere il file di origine che avete in archivio la corrosponding spec.js in questo modo:

//Be careful to choose the right path from the sight of your spec.js  
var helloworld = require('../src/helloworld'); //the actual filename without '.js' 

quindi esportare lo script all'interno dei "helloworld.js" in questo modo:

exports.helloWorld = function(){ 
    return "Hello world!"; 
}; 

Quello ha funzionato per me ... spero che aiuti, non ho trovato un'altra soluzione.

2

FWIW Ho scoperto che elenca i miei file di origine nella lista helpers funziona ..

{ 
    "spec_dir": "spec", 
    "spec_files": [ 
    "fooSpec.js", 
    "barSpec.js" 
    ], 
    "helpers": [ 
    "../src/foo.js", 
    "../src/bar.js" 
    ] 
} 
+0

Con Jasmine 2? Non funziona per me. Hai un esempio di esecuzione online? –