Để đăng nhập bổ sung, tôi cần có khả năng in mô tả của bài kiểm tra hiện tại.Làm cách nào để có thể truy xuất tên thử nghiệm hiện tại trong thử nghiệm Mocha?
Tôi làm cách nào để thực hiện điều này (với Mocha BDD)?
Để đăng nhập bổ sung, tôi cần có khả năng in mô tả của bài kiểm tra hiện tại.Làm cách nào để có thể truy xuất tên thử nghiệm hiện tại trong thử nghiệm Mocha?
Tôi làm cách nào để thực hiện điều này (với Mocha BDD)?
Ở đây bạn đi:
console.log(this.title);
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
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
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
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 –
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
.
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
});
này không hoạt động. –
không hoạt động. nên là this.test.title như trong câu trả lời @louis bên dưới –