angular modulewise 单元测试用例覆盖率

问题描述

我遇到了一个问题,需要帮助。我正处于编写单元测试用例的早期阶段。我需要特定于代码覆盖率模块。目前我正在获取特定于文件夹的内容。不考虑内部(递归)文件夹。是否有任何选项可以获得特定于模块的代码覆盖率?我也探索了一些 karma 库,但没有运气。

Karma.conf.ts

module.exports = function (config) {
  config.set({
    basePath: '',frameworks: ['jasmine','@angular-devkit/build-angular'],plugins: [
      require('karma-jasmine'),require('karma-chrome-launcher'),require('karma-jasmine-html-reporter'),require('karma-coverage-istanbul-reporter'),require('@angular-devkit/build-angular/plugins/karma'),require('karma-html-reporter')
    ],client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },coverageIstanbulReporter: {
      dir: require('path').join(__dirname,'coverage'),// reports: [ 'html','lcovonly','text-summary','clover','cobertura','json-summary','json','lcov','teamcity','text-lcov','text'],reports: [ 'html','lcovonly'],fixWebpackSourcePaths: true
    },reporters: ['progress','kjhtml','html'],htmlReporter: {
      outputDir: 'unit_test_results',templatePath: null,focusOnFailures: true,namedFiles: true,pageTitle: null,urlFriendlyName: false,reportName: 'test_case_summary_' + new Date().toLocaleDateString()        
    },files: [
      { pattern: './src/test.ts',watched: true },{pattern: './src/assets/**/*.png'},{pattern: './src/assets/**/**/*.png'},{pattern: './src/assets/**/*.css'},{pattern: './src/assets/**/**/*.css'},{ pattern: './node_modules/@angular/material/prebuilt-themes/indigo-pink.css' },{ pattern: './node_modules/bootstrap/dist/css/bootstrap.min.css' },{ pattern: './node_modules/font-awesome/css/font-awesome.min.css' },{ pattern: './src/styles.css' },],captureTimeout :60000,browserNoActivityTimeout :60000,port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,browsers: ['Chrome'],singleRun: false
  });
};

test.ts

import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import { getTestbed } from '@angular/core/testing';
import {
    browserDynamicTestingModule,platformbrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
declare const __karma__: any;
declare const require: any;

// Prevent Karma from running prematurely.
__karma__.loaded = function () { };

getTestbed().initTestEnvironment(
    browserDynamicTestingModule,platformbrowserDynamicTesting()
);


var specFiles = {
  aa-test: require.context('./app/aa-test',true,/\.spec\.ts$/),}

for (var file in specFiles) {
    console.log('test cases ' + file,specFiles[file].keys());
    specFiles[file].keys().map(specFiles[file]);
}

__karma__.start();

文件夹结构:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)