2013-08-18 77 views

回答

-1

在這裏你去:

console.log(this.title); 
+4

這是行不通的。 –

+0

不起作用。應該是this.test.title在@louis答案下方 –

23

如果你是直接回調describe裏面,你可以使用this.titledescribethis.fullTitle()的標題來獲得describe(祖先的頭銜的層次標題+這一個的標題)。如果您在回撥到it的範圍內,則可以分別使用this.test.titlethis.test.fullTitle()。所以:

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

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

console.log上述聲明將輸出:

top 
top 
test 
top test 

這裏顯示的標題如何變化取決於嵌套一個更全面的例子:

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

console.log語句將輸出:

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

您可以指向Mocha的文檔,其中像'this.test.fullTitle()'這樣的API被記錄在文檔中嗎?對公衆來說,瞭解,探索和尋找這樣或那樣的問題的答案是非常好的。 – Yiling

+0

不幸的是,這方面的文件不足。如果你關心這個API的穩定性,我可以說的是,記者使用它來製作他們的報告,所以如果摩卡開發者剛剛改變了它,他們會打破第三方記者。 – Louis

+2

稍晚,但這可能有所幫助:https://github.com/mochajs/mocha/blob/master/lib/test.js –

1

beforeEach內,請嘗試this.currentTest.title

實施例:

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

使用摩卡3.4.1

-1

內的任何測試方法

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

,你可以使用:

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