2017-09-01 23 views
2

我使用Angular CLI創建了一個項目。它創建了以下karma.config.js。我注意到這個文件不包含spec文件的配置/路徑,但我仍然可以使用npm test來運行業力。怎麼來的?Karma正在工作,沒有指定js文件的路徑

module.exports = function (config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine', '@angular/cli'], 
    plugins: [ 
     require('karma-jasmine'), 
     require('karma-chrome-launcher'), 
     require('karma-jasmine-html-reporter'), 
     require('karma-coverage-istanbul-reporter'), 
     require('@angular/cli/plugins/karma') 
    ], 
    client:{ 
     clearContext: false // leave Jasmine Spec Runner output visible in browser 
    }, 
    coverageIstanbulReporter: { 
     reports: [ 'html', 'lcovonly' ], 
     fixWebpackSourcePaths: true 
    }, 
    angularCli: { 
     environment: 'dev' 
    }, 
    reporters: ['progress', 'kjhtml'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    singleRun: false 
    }); 
}; 

規格文件在位置./src/app/app.component.ts。我預計karma.conf.js包含以下行

files: [ 
'src/**/*.js' 
] 

回答

0

當一個角CLI項目使用噶,它結束了使用src/test.ts文件默認情況下。您可以在.angular-cli.json找到這個:

... 
"test": "test.ts", 
... 

(貌似在因果報應文件的頂部角CLI插件是一個尋找那個test.ts.)

如果您看test.ts,你會看到,它初始化測試角的環境,然後再做到這一點:

const context = require.context('./', true, /\.spec\.ts$/); 
context.keys().map(context); 

這包括src目錄中的所有規格文件。通過要求這些spec文件,它們包含在測試運行中。你也可以刪除該塊,並完成類似:

require('./app/search/search.component.spec.ts');

這將只運行在規範文件中的測試,例如。

相關問題