2017-06-01 67 views
1

我想用業力來使用JUnit記者。角度單元測試:不能改變業力記者

當我啓動

$ ng test --watch=false --code-coverage 

它總是輸出我

10% building modules 1/1 modules 0 active01 06 2017 11:57:51.797:ERROR 
[reporter]: Can not load reporter "coverage-istanbul", it is not registered! 

的問題是,在我的karma.conf.json我沒有提到伊斯坦布爾:

module.exports = function (config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine', '@angular/cli'], 
    plugins: [ 
     require('karma-jasmine'), 
     // require('karma-chrome-launcher'), 
     require('karma-phantomjs-launcher'), 
     require('karma-junit-reporter'), 
     require('karma-mocha-reporter'), 
     require('@angular/cli/plugins/karma') 
    ], 
    files: [ 
     { pattern: './src/test.ts', watched: false } 
    ], 
    preprocessors: { 
     './src/test.ts': ['@angular/cli'] 
    }, 
    mime: { 
     'text/x-typescript': ['ts', 'tsx'] 
    }, 
    junitReporter: { 
     outputDir: 'coverage', // results will be saved as $outputDir/$browserName.xml 
     useBrowserName: false, // add browser name to report and classes names 
     outputFile: 'test-report.xml', // if included, results will be saved as $outputDir/$browserName/$outputFile 
    }, 
    angularCli: { 
     config: './angular-cli.json', 
     environment: 'dev' 
    }, 
    reporters: config.angularCli && config.angularCli.codeCoverage ? 
     ['mocha', 'junit'] : 
     ['mocha'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: [ 
     'PhantomJS', 
     // 'Chrome' 
    ], 
    singleRun: false 
    }); 
}; 

你有什麼想法可能來自哪裏?

我也刪除了所有在我的package.json文件中引用istanbul的包,我也用npm prune來確定。

回答

2

因此,我在Angular CLI項目上寫了一個問題,他們告訴我使用code coverage選項會自動添加istanbul軟件包,無論您設置了什麼。我使用的命令現在是

ng test --reporters=junit --watch=false || ECHO 
0

正確的軟件包安裝擺脫上述錯誤的是:

果報報道,伊斯坦布爾,記者

npm install karma-coverage-istanbul-reporter --save-dev