LoginSignup
24
19

More than 5 years have passed since last update.

karmaでTypeScriptのテストを行う

Last updated at Posted at 2014-09-08

すべてTypeScriptにしたい。テストも。

TypeScriptでの開発に慣れてくると、すべてTypeScriptで記述したくなります。

テストもTypeScriptで書きたいです。

実行環境:karma、テスティングフレームワーク:jasmineの一般的(?)な組み合わせの場合について調べてみました。

1.型定義ファイルのインストール

Nugetから以下のパッケージをインストールする。
AngularJSの型定義ファイルを使用する場合は、これのインストールは不要。(angular-scenario.d.tsとの定義重複エラーが大量に発生します。)

install-package karma-jasmine.TypeScript.DefinitelyTyped

2.TypeScriptのプリプロセッサパッケージをインストール

karma-typescript-preprocessor という名前がズバリなこのパッケージを使う。(仕組みとかは全然見てないんですけど、とりあえずインストール&設定したら使えました。。)

2-1.パッケージのインストール

https://github.com/sergeyt/karma-typescript-preprocessor このパッケージをインストールする。

npm install -g karma-typescript-preprocessor

2-2.設定ファイルの書き換え

karmaの設定ファイルにプリプロセッサ情報を追記する。

  • filesにtsファイルを追加する。
  • 型定義ファイル(.d.ts)に対応する実装ファイル(.js)もfilesに追加する必要あり。
  • プリプロセッサの設定を追加する。
karma.conf.js
// ~~ 略 ~~

    files: [
        "../underscore.js",
        "../myts/*.ts",
        "*.ts"
    ],

    preprocessors: {
        '../myts/*.ts': ['typescript'],
        '*.ts': ['typescript']
    },

// ~~ 略 ~~

3.テストの記述

referenceが不要みたい。やった!
テスト書いたらあとはkarma実行するだけ。

hoge-test.ts
describe("テストサンプル",  () => {
    it("TypeScript定義クラスが利用できる。", () => {
        var h = new File1.Hoge("ほげ", 110);
        expect(h.getHogege()).toBe("ほげ 110");
    });

    it("外部の有名ライブラリも利用できる", () => { 
        _.each([1, 2], (i: number) => {
            expect(1).toBe(1);
        });
    });
});
24
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
19