2016-09-14 10 views
3

Webpackを使用してすべてのコードを1つのファイルにまとめるプロジェクトがあります。プロジェクトはTypescriptを使用しており、現時点で問題なく動作しています。Webpack、Jasmine(-core)、typescriptによるユニットテスト

私は単体テストを追加しました。ジャスミンは、(多くの方法のうちの1つとして)前進しているようです。その実際のジャスミンコアはpackage.jsonに含まれています - 違いがどのくらいあるかわかりません。

ので、正常に動作します

it('true is true', function(){ expect(true).toEqual(true); }); 
として非常に簡単なテストを実行しています。 しかし、私は、インポートを使用する必要がテストを追加するとき - 私はそれは文句テストを実行するときなど

import MyService = require('./MyServices'); 

が、それは「必要」とは何を知っていないようです。 Uncaught ReferenceError: require is not defined

これは、主なプロジェクトをパッケージ化するのと同じ方法でテストモジュールをパッケージ化する必要があるためです。

これを行うにはどうすればよいですか? webpack.config.jsファイルに、* .spec.tsファイルごとに複数のエントリポイントを設定する必要がありますか? それとも持ってする方法がありますと言うスペックファイルの未知の数を受け入れる

エントリ:[* .spec.ts]とそれそれぞれに対して出力JSファイル持っている - *あなたが

答えて

2

を.spec.js karma/karma-webpackを使用して、インポートを解決するためにwebpackを使用してすべてのテストを実行できます。あなたは簡単な構成のためにthis repositoryを見ることができます。

エンベロープポイントとしてインデックス.spec.tsを指定して、Webpackの設定ファイル内の各spec.tsに対して1つのエントリポイントを作成したくない場合は、このファイルにすべてのスペックファイルを指定することもできます。

+0

これは理想的です。 – delp

+2

ジャスミンを使用しているときには、 'frameworks:['mocha'、 'chai'、 'sinon']という行を次のように置き換えることができます。 'frameworks:['jasmine']、 ' 進捗報告者の代わりにmochaリポーターを使うこともできます。 –

関連する問題