Per la registrazione aggiuntiva, devo essere in grado di stampare la descrizione del test corrente.Come posso recuperare il nome del test corrente all'interno di un test Mocha?
Come posso fare questo (con Mocha BDD)?
Per la registrazione aggiuntiva, devo essere in grado di stampare la descrizione del test corrente.Come posso recuperare il nome del test corrente all'interno di un test Mocha?
Come posso fare questo (con Mocha BDD)?
Qui si va:
console.log(this.title);
Se ci si trova direttamente all'interno di un callback a describe
, si può usare this.title
per il titolo del describe
o this.fullTitle()
per ottenere il titolo gerarchico dei titoli delle describe
(antenati + il titolo di questo). Se si è all'interno di una richiamata su it
, è possibile utilizzare rispettivamente this.test.title
o this.test.fullTitle()
. Quindi:
describe("top", function() {
console.log(this.title);
console.log(this.fullTitle());
it("test", function() {
console.log(this.test.title);
console.log(this.test.fullTitle());
});
});
I console.log
dichiarazioni di cui sopra uscita volontà:
top
top
test
top test
Ecco un esempio più completo che mostra come i titoli cambiano a seconda di nidificazione:
function dump() {
console.log("running: (fullTitle)", this.test.fullTitle(), "(title)",
this.test.title);
}
function directDump() {
console.log("running (direct): (fullTitle)", this.fullTitle(), "(title)",
this.title);
}
describe("top", function() {
directDump.call(this);
it("test 1", dump);
it("test 2", dump);
describe("level 1", function() {
directDump.call(this);
it("test 1", dump);
it("test 2", dump);
});
});
Le console.log
dichiarazioni saranno di uscita:
running (direct): (fullTitle) top (title) top
running (direct): (fullTitle) top level 1 (title) level 1
running: (fullTitle) top test 1 (title) test 1
running: (fullTitle) top test 2 (title) test 2
running: (fullTitle) top level 1 test 1 (title) test 1
running: (fullTitle) top level 1 test 2 (title) test 2
Puoi indicare la documentazione di Mocha dove sono documentati API come 'this.test.fullTitle()'? Sarebbe fantastico per il pubblico conoscere, esplorare e trovare risposte a domande come questa e altro. – Yiling
Purtroppo, la documentazione in quest'area è carente. Se sei preoccupato per la stabilità di questa API, quello che posso dire è che i reporter lo usano per produrre i loro report, quindi se gli sviluppatori di Mocha lo hanno appena cambiato, avrebbero interrotto i reporter di terze parti. – Louis
Un po 'tardi, ma questo potrebbe aiutare: https://github.com/mochajs/mocha/blob/master/lib/test.js –
Dall'interno di uno beforeEach
, provare this.currentTest.title
.
Esempio:
beforeEach(function(){
console.log(this.currentTest.title);
})
Utilizzando Mocha 3.4.1
.
all'interno di qualsiasi metodo di prova
it('test method name'), function() { var testName= this.test.title; }
e si può utilizzare:
afterEach(function(){
console.log(this.currentTest.title); //displays test title for each test method
});
questo non funziona. –
non funziona. dovrebbe essere this.test.title come nella risposta @louis sotto –