Domanda Come posso recuperare il nome del test corrente all'interno di un test Mocha?


Per la registrazione aggiuntiva, devo essere in grado di stampare la descrizione del test corrente.

Come posso fare questo (con Mocha BDD)?


11
2017-08-18 22:30


origine


risposte:


Ecco qui:

console.log(this.title);

-3
2017-08-19 01:34



Se si è direttamente all'interno di un callback a describe, Puoi usare this.title per il titolo del describe o this.fullTitle() ottenere il titolo gerarchico del describe (titoli degli antenati + il titolo di questo). Se si è all'interno di una richiamata a it Puoi usare this.test.title o this.test.fullTitle() rispettivamente. Così:

describe("top", function() {
    console.log(this.title);
    console.log(this.fullTitle());

    it("test", function () {
        console.log(this.test.title);
        console.log(this.test.fullTitle());
    });
});

Il console.log le dichiarazioni di cui sopra produrranno:

top
top
test
top test

Ecco un esempio più completo che mostra come cambiano i titoli in base al raggruppamento:

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);
    });
});

Il console.log le dichiarazioni produrranno:

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

23
2017-10-23 18:35



Dall'interno di a beforeEach, provare this.currentTest.title.

Esempio:

beforeEach(function(){
  console.log(this.currentTest.title); 
})

Utilizzando Mocha 3.4.1.


2
2017-09-05 22:48



All'interno di qualsiasi metodo di prova

it('test method name'), function()  { var testName= this.test.title; }

e puoi usare:

afterEach(function(){
    console.log(this.currentTest.title); //displays test title for each test method      
});

-1
2017-12-10 16:02