web-dev-qa-db-ja.com

Mochaテスト内で現在のテストの名前を取得するにはどうすればよいですか?

追加のロギングについては、現在のテストの説明を印刷できる必要があります。

どうすればこれを行うことができますか(Mocha BDDを使用)?

22
lairtech

describeへのコールバック内に直接いる場合は、describeまたはthis.fullTitle()のタイトルに_this.title_を使用して、describeの階層タイトル(祖先のタイトル+このタイトルのタイトル)を取得できます。 )。 itへのコールバック内にいる場合は、それぞれ_this.test.title_またはthis.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
_
36
Louis

beforeEach内から、this.currentTest.titleを試してください。

例:

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

Mocha 3.4.1を使用します。

5
Andrew Homeyer

モカ「^ 5.1.0」の場合、console.log(this.ctx.test.title);を使用できます

0
Ken