Für zusätzliche Protokollierung muss ich in der Lage sein, die Beschreibung des aktuellen Tests zu drucken.Wie kann ich den Namen des aktuellen Tests innerhalb eines Mocha-Tests abrufen?
Wie kann ich das (mit Mocha BDD)?
Für zusätzliche Protokollierung muss ich in der Lage sein, die Beschreibung des aktuellen Tests zu drucken.Wie kann ich den Namen des aktuellen Tests innerhalb eines Mocha-Tests abrufen?
Wie kann ich das (mit Mocha BDD)?
Hier gehen Sie:
console.log(this.title);
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
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
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
Ein wenig spät, aber das könnte helfen: https://github.com/mochajs/mocha/blob/master/lib/test.js –
Versuchen Sie in einem beforeEach
this.currentTest.title
.
Beispiel:
beforeEach(function(){
console.log(this.currentTest.title);
})
Mit Mokka 3.4.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
});
Dies funktioniert nicht. –
funktioniert nicht. sollte this.test.title wie in @louis antworten unter –