$yanutetsu->{blog}

プログラマ三大美徳なPM

Angularで実行するテストを選択する方法

やぬてつです。

この記事ではTypeScript/Angularでjasmineの利用をターゲットとしています。

みなさんは開発が進んできて、だんだんテストの数も時間も増えてきていると思います。 「もう少し早くテストできないかなー」とか「この辺のテストだけでいいんだけどなー」って思うこと有りますよね。

そこで、jasmineのドキュメントを調べたらテストを選択できるオプション?のような物がありました。 ※正確にはオプションではなくてそれぞれメソッドのようです。

任意のテストを除外してテストを実行する方法

xdescribe 及び xit でテストを記述する

xdescribe('HogeComponent', () => {
  it('is test 1', () => {
    expect(true).toBeTruthy();
  });

  it('is test 2', () => {
    expect(true).toBeTruthy();
  });

  it('is test 3', () => {
    expect(true).toBeTruthy();
  });
});

describe('PiyoComponent', () => {
  ...
});

HogeComponent以下のテストを無視して、他のテストを実施します。

describe('HogeComponent', () => {
  it('is test 1', () => {
    expect(true).toBeTruthy();
  });

  xit('is test 2', () => {
    expect(true).toBeTruthy();
  });

  it('is test 3', () => {
    expect(true).toBeTruthy();
  });
});

describe('PiyoComponent', () => {
  ...
});

HogeComponent is test 2だけを無視して、他のテストを実施します。

任意のテストを実行する方法

fdescribe 及び fit でテストを記述する

fdescribe('HogeComponent', () => {
  it('is test 1', () => {
    expect(true).toBeTruthy();
  });

  it('is test 2', () => {
    expect(true).toBeTruthy();
  });

  it('is test 3', () => {
    expect(true).toBeTruthy();
  });
});

describe('PiyoComponent', () => {
  ...
});

HogeComponent以下のテストだけをテストします。

describe('HogeComponent', () => {
  it('is test 1', () => {
    expect(true).toBeTruthy();
  });

  fit('is test 2', () => {
    expect(true).toBeTruthy();
  });

  it('is test 3', () => {
    expect(true).toBeTruthy();
  });
});

describe('PiyoComponent', () => {
  ...
});

HogeComponent is test 2だけをテストします。

考え方を変えるとこんな感じ

  • describeに x をつけるとxdescribe以外のdescribeを実行
  • describeに f をつけるとfdescribeのみを実行

  • it に x をつけるとそのxit以外のitを実行

  • it に f をつけるとそのitのみ実行

まとめ

xとかfを利用して効率的に開発を行っていきましょう!