2017-05-08 6 views
1

私はCLIで生成された角4のプロジェクトを持っており、私はテスト作業をしようとしています。私は私のプロジェクトのルートにKarma.confを持っている:カルマが私の角張ったアプリで私のテストを見つけることができません

module.exports = function (config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine', 'angular-cli'], 
    plugins: [ 
     require('karma-jasmine'), 
     require('karma-chrome-launcher'), 
     require('karma-remap-istanbul'), 
     require('angular-cli/plugins/karma') 
    ], 
    files: [ 
     { pattern: './src/test.ts', watched: false } 
    ], 
    preprocessors: { 
     './src/test.ts': ['angular-cli'] 
    }, 
    mime: { 
     'text/x-typescript': ['ts','tsx'] 
    }, 
    remapIstanbulReporter: { 
     reports: { 
     html: 'coverage', 
     lcovonly: './coverage/coverage.lcov' 
     } 
    }, 
    angularCli: { 
     config: './angular-cli.json', 
     environment: 'dev' 
    }, 
    reporters: config.angularCli && config.angularCli.codeCoverage 
       ? ['progress', 'karma-remap-istanbul'] 
       : ['progress'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    singleRun: false 
    }); 
}; 

そして、ここでは私のsrcフォルダにある私のtest.tsです:

declare var __karma__: any; 
declare var require: any; 

__karma__.loaded = function() {}; 

getTestBed().initTestEnvironment(
    BrowserDynamicTestingModule, 
    platformBrowserDynamicTesting() 
); 
const context = require.context('./', true, /\.spec\.ts$/); 
context.keys().map(context); 
__karma__.start(); 

マイフォルダ構造は次のとおりです。

+---app 
| +---class 
| +---components 
| +---services 
| \---templates 
+---assets 
| \---images 
\---environments 

したがって、私のコンポーネントの中で、feeds.component.tsというコンポーネントに関連付けられたfeeds.component.spec.tsというテストを作成しました。

私のWindowsコンソールの出力は以下の通りです:

Unable to find "@angular/cli" in devDependencies. 

The package "angular-cli" has been deprecated and renamed to "@angular/cli". 

Please take the following steps to avoid issues: 
"npm uninstall --save-dev angular-cli" 
"npm install --save-dev @angular/[email protected]" 

08 05 2017 08:33:12.674:WARN [karma]: No captured browser, open http://localhost 
:9876/ 
08 05 2017 08:33:12.687:INFO [karma]: Karma v1.2.0 server started at http://loca 
lhost:9876/ 
08 05 2017 08:33:12.688:INFO [launcher]: Launching browser Chrome with unlimited 
concurrency 
08 05 2017 08:33:12.897:INFO [launcher]: Starting browser Chrome 
08 05 2017 08:33:17.033:INFO [Chrome 58.0.3029 (Windows 10 0.0.0)]: Connected on 
socket /#tif1xw_35N5kuco6ACBA with id 3123123 

そしてカルマのデバッグコンソールだけので何のテストが起動されていないSkipped 0 testsを出力します。

奇妙なことは、私は私のtemplateフォルダに配置されているデフォルトのテストを立ち上げることができるということです。私もtest.tsをコメントにし、私のkarma.conf.jsでテストを「強制」しようとしました

Chrome 58.0.3029 (Windows 10 0.0.0): Executed 3 of 3 (3 FAILED) (0 secs/0.159 
Chrome 58.0.3029 (Windows 10 0.0.0): Executed 3 of 3 (3 FAILED) ERROR (0.536 sec 
s/0.159 secs) 

app.component.spec.tsをパターンと私のコンポーネントをハードコーディング:

files: [ 
    //{ pattern: './src/test.ts', watched: false }, 
    { pattern: 'app/components/feeds.component.spec.ts', included: true, watched:false } 
], 

しかし、これは次のように出力します

Uncaught SyntaxError: Unexpected token import 
at src/app/components/feeds.component.spec.ts:1 

私のcomponentsテストが開始されないのはなぜですか?

+0

ここで同じ問題はありますか? –

答えて

1

問題を回避するには、以下の手順を実行してください:

 
    npm uninstall --save-dev angular-cli 
    npm clean 
    npm install --save-dev @angular/[email protected] 

あなたはまた、世界的にそれを行う必要があります。 NPM 5については

0

、私は、この問題を解決:

package-lock.jsonを削除
  • 実行中npm cache clean --force;
  • 不要な依存関係をpackage.jsonから削除しました(私は@ngtoolsを持っていました)。
  • 残りの依存関係をncuで更新し、npm iを再度実行します。

その後、typescript 2.4.xで問題が発生し、2.3.4に戻ってしまいましたが、数日後に解決される可能性があります。それは今言及する価値がある。

関連する問題