2013-08-18 12 views

Antwort

-1

Hier gehen Sie:

console.log(this.title); 
+4

Dies funktioniert nicht. –

+0

funktioniert nicht. sollte this.test.title wie in @louis antworten unter –

23

Wenn Sie direkt in einem Rückruf zu describe sind, können Sie this.title für den Titel des describe oder this.fullTitle() bekommen die hierarchische Titel der describe (Vorfahren Titel verwenden können + der Titel dieses). Wenn Sie sich in einem Rückruf zu it befinden, können Sie this.test.title oder this.test.fullTitle() verwenden. Also:

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

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

Die console.log Aussagen über AUSGABE:

top 
top 
test 
top test 

Hier ist ein vollständigeres Beispiel, das zeigt, wie die Titel ändern sich je nach Verschachtelung:

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

Die console.log Aussagen ausgegeben:

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 
+1

Könnten Sie auf Mochas Dokumentation zeigen, wo API wie 'this.test.fullTitle()' dokumentiert ist? Es wäre großartig für die Öffentlichkeit, Fragen wie diese und mehr zu kennen, zu erforschen und zu finden. – Yiling

+0

Leider fehlt die Dokumentation in diesem Bereich. Wenn Sie sich Sorgen um die Stabilität dieser API machen, kann ich sagen, dass Reporter dies verwenden, um ihre Berichte zu erstellen. Wenn die Mocha-Entwickler sie einfach geändert haben, würden sie die Reporter von Dritten zerbrechen. – Louis

+2

Ein wenig spät, aber das könnte helfen: https://github.com/mochajs/mocha/blob/master/lib/test.js –

1

Versuchen Sie in einem beforeEachthis.currentTest.title.

Beispiel:

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

Mit Mokka 3.4.1.

-1

Innerhalb jeder Testmethode

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

und Sie verwenden:

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