2017-02-07 14 views
0

webpackとカルマでAngular2プロジェクトを設定する公式のAngularドキュメンテーションに従いました:https://angular.io/docs/ts/latest/guide/webpack.html。プロジェクトは正常に機能しますが、カルマの設定は正しくありません。私は、「NPMテスト」(または「カルマ開始」)を実行すると、私はこのエラーを取得しておいてください。ang2とwebpackでカルマセットアップ:エラー:「ファイル」または「ディレクトリ」を解決できません

ERROR in Entry module not found: Error: Cannot resolve 'file' or 'directory' [my project path]/config/karma-test-shim.js in [my project path]

私はすべてのカルマ・テストshim.jsファイルを指定しない場合、エラーが異なっています、それは間違いなくファイルを見つけることです。私はkarma-test-shim.jsファイルを空にしてコピーを貼り付ける際に奇妙な文字がある場合は手作業でコードの一部を入力してみましたが、それでもエラーが出ます。

このエラーを回避し、カルマテストを実行するにはどうすればよいですか?

(私は上記のリンク先の文書から正確にコピーされた)のconfig/karma.conf.jsの

内容:(もう一度、ドキュメントから正確にコピーされたのconfig /カルマテスト-shim.jsの

var webpackConfig = require('./webpack.test'); 

module.exports = function (config) { 
var _config = { 
basePath: '', 

frameworks: ['jasmine'], 

files: [ 
    {pattern: './config/karma-test-shim.js', watched: false} 
], 

preprocessors: { 
    './config/karma-test-shim.js': ['webpack', 'sourcemap'] 
}, 

webpack: webpackConfig, 

webpackMiddleware: { 
    stats: 'errors-only' 
}, 

webpackServer: { 
    noInfo: true 
}, 

reporters: ['progress'], 
port: 9876, 
colors: true, 
logLevel: config.LOG_INFO, 
autoWatch: false, 
browsers: ['PhantomJS'], 
singleRun: true 
}; 

config.set(_config); 
}; 

内容私は上記にリンクしています):

Error.stackTraceLimit = Infinity; 

require('core-js/es6'); 
require('core-js/es7/reflect'); 

require('zone.js/dist/zone'); 
require('zone.js/dist/long-stack-trace-zone'); 
require('zone.js/dist/proxy'); 
require('zone.js/dist/sync-test'); 
require('zone.js/dist/jasmine-patch'); 
require('zone.js/dist/async-test'); 
require('zone.js/dist/fake-async-test'); 

var appContext = require.context('../src', true, /\.spec\.ts/); 

appContext.keys().forEach(appContext); 

var testing = require('@angular/core/testing'); 
var browser = require('@angular/platform-browser-dynamic/testing'); 

testing.TestBed.initTestEnvironment(browser.BrowserDynamicTestingModule, browser.platformBrowserDynamicTesting()); 

答えて

0

私はついにこのセットアップが動作するようになりました。

私はAngularのドキュメントから投稿したこのガイドに従っていました。私のプロジェクトをセットアップするには、おそらく約1ヶ月前です。数週間後、同じドキュメンテーションに戻り、カルマをセットアップしてテストを書き始めました。私が気づいていなかったことは、チームメイトがそれを私に指摘するまで、そのページは修正されていて、ウェブパックを含むいくつかのものがアップグレードされたということでした。私の最初のセットアップはwebpack 1.xを使用していました。それは当時のAngularドキュメンテーションにあったものでしたが、私がカルマをセットアップしていたとき、そのドキュメントは現在webpack 2.xを使用していました。ドキュメントが変更されたという兆候はなかったので、これは非常に卑劣だった。

私はpackage.jsonをドキュメントの更新に従って更新しました。これでカルマが動作します。

関連する問題