2013-08-18 31 views

Trả lời

-1

Ở đây bạn đi:

console.log(this.title); 
+4

này không hoạt động. –

+0

không hoạt động. nên là this.test.title như trong câu trả lời @louis bên dưới –

23

Nếu bạn là trực tiếp bên trong một callback để describe, bạn có thể sử dụng this.title cho tiêu đề của describe hoặc this.fullTitle() để có được danh hiệu thứ bậc của tiêu đề các describe (tổ tiên + tiêu đề của cái này). Nếu bạn đang ở trong một cuộc gọi lại tới số it, bạn có thể sử dụng this.test.title hoặc this.test.fullTitle() tương ứng. Vì vậy:

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

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

Các console.log báo cáo trên sẽ đầu ra:

top 
top 
test 
top test 

Dưới đây là một ví dụ đầy đủ hơn cho thấy cách các chức danh thay đổi tùy thuộc vào làm tổ:

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

Các console.log tuyên bố sẽ đầu ra:

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

Bạn có thể trỏ đến tài liệu của Mocha trong đó API như 'this.test.fullTitle()' được ghi lại không? Nó sẽ là tuyệt vời cho công chúng để biết, khám phá và tìm câu trả lời cho các câu hỏi như thế này và nhiều hơn nữa. – Yiling

+0

Thật không may, tài liệu trong khu vực này còn thiếu. Nếu bạn lo lắng về sự ổn định của API này, những gì tôi có thể nói là các phóng viên sử dụng điều này để tạo báo cáo của họ, vì vậy nếu các nhà phát triển Mocha chỉ thay đổi nó, họ sẽ phá vỡ các phóng viên của bên thứ ba. – Louis

+2

Một chút trễ, nhưng điều này có thể giúp: https://github.com/mochajs/mocha/blob/master/lib/test.js –

1

Từ trong một số beforeEach, hãy thử this.currentTest.title.

Ví dụ:

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

Sử dụng Mocha 3.4.1.

-1

Bên trong bất kỳ phương pháp thử nghiệm

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

và bạn có thể sử dụng:

afterEach(function(){ 
    console.log(this.currentTest.title); //displays test title for each test method  
}); 
Các vấn đề liên quan