微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angular modulewise 单元测试用例覆盖率

如何解决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 举报,一经查实,本站将立刻删除。