标签: karma-coverage

询问 angular 2 单元测试中的 Coverage 摘要?

当我在 angular 2 中运行测试时,我在 Coverage Summary 部分的控制台命令上看到一些关键字输出为Statements, Branches, Functions....

在此处输入图片说明

我不知道到底是什么?

任何帮助为我解释这一点,谢谢。

javascript unit-testing karma-coverage angular

4
推荐指数
1
解决办法
2193
查看次数

无法读取角度 2 中未定义的属性“参数”

我们在代码中使用了路由参数。但是在 jasmine karma 中执行单元测试时,我们遇到了以下错误。

TypeError: Cannot read property 'params' of undefined
TypeError: Cannot read property 'params' of undefined
    at Object.<anonymous> (http://localhost:9876/base/src/test.ts:38586:20)
    at ZoneDelegate.713.ZoneDelegate.invoke (http://localhost:9876/base/src/polyfills.ts:1599:26)
    at ProxyZoneSpec.onInvoke (http://localhost:9876/base/src/test.ts:82238:39)
    at ZoneDelegate.713.ZoneDelegate.invoke (http://localhost:9876/base/src/polyfills.ts:1598:32)
    at Zone.713.Zone.run (http://localhost:9876/base/src/polyfills.ts:1359:43)
    at Object.<anonymous> (http://localhost:9876/base/src/test.ts:81952:34)
    at attemptSync (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1950:24)
    at ZoneQueueRunner.QueueRunner.run (http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1938:9)
    at http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1962:16
    at http://localhost:9876/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1905:9
    at http://localhost:9876/base/src/test.ts:14790:17
    at ZoneDelegate.713.ZoneDelegate.invoke (http://localhost:9876/base/src/polyfills.ts:1599:26)
    at AsyncTestZoneSpec.onInvoke (http://localhost:9876/base/src/test.ts:81547:39)
    at ProxyZoneSpec.onInvoke (http://localhost:9876/base/src/test.ts:82235:39)
    at ZoneDelegate.713.ZoneDelegate.invoke (http://localhost:9876/base/src/polyfills.ts:1598:32)
Run Code Online (Sandbox Code Playgroud)

请在下面找到我们的 ts 文件:

import { Component, OnInit, AfterViewInit, EventEmitter, Output } from '@angular/core';

export class MyComponent implements OnInit, AfterViewInit { …
Run Code Online (Sandbox Code Playgroud)

unit-testing karma-jasmine karma-coverage routeparams angular

4
推荐指数
2
解决办法
1万
查看次数

错误:InjectionToken USE_DEFAULT_LANG 没有提供程序

我是 angular 4 jasmine 单元测试的新手。

  1. 请帮助我获得附加组件的完整测试覆盖率。
  2. 我已经为翻译模块添加了子依赖项,但仍然出现错误:InjectionToken USE_DEFAULT_LANG 没有提供程序!这是什么解决方案???
  3. 我想知道如何在我附加的代码中覆盖变量和方法以进行全面覆盖。

谢谢你的帮助。

登录组件:

   import { Component, OnInit } from '@angular/core';
    import { Router } from '@angular/router';
    import { Http, Headers, RequestOptions, Response } from '@angular/http';
    import { HttpError } from '../core/http-error';
    import { jsonFields } from '../app.constants';
    import { LoggedUserData } from '../shared/model/loggedUserData';
    import { Observable } from 'rxjs/Observable';
    import { FormControl, Validators } from '@angular/forms';
    import { LoginService } from '../shared/login.service';

    @Component({
      selector: 'app-login',
      templateUrl: './login.component.html',
      styleUrls: ['./login.component.scss'] …
Run Code Online (Sandbox Code Playgroud)

jasmine karma-jasmine karma-coverage angular angular4-router

4
推荐指数
1
解决办法
9123
查看次数

Sonarqube没有从LCOV检索我的JavaScript报道

我有一个具有以下结构的应用程序:

my-application
  +- pom.xml
  +- app
  |   +- scripts
  |   |   +- app.js
  |   |   +- **/*.js
  |   +- 3rd-party-libs
  +- build
  +- node_modules
  +- test
Run Code Online (Sandbox Code Playgroud)

我创建了pom.xml唯一一个运行SonarQube分析的人.否则,所有任务都由Grunt运行(测试与Karma一起运行).

内容pom.xml如下:

<properties>
    <sonar.language>js</sonar.language>
    <sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>
    <sonar.javascript.coveragePlugin>lcov</sonar.javascript.coveragePlugin>
    <sonar.javascript.lcov.reportPath>build/karma/coverage/lcov.info</sonar.javascript.lcov.reportPath>
    <sonar.exclusions>app/3rd-party-libs/**,node_modules/**</sonar.exclusions>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
</properties>

<build>
    <sourceDirectory>app/scripts</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
</build>
Run Code Online (Sandbox Code Playgroud)

当我运行时grunt test,它创建一个build/karma/coverage/lcov.info包含以下信息:

TN:
SF:./app/scripts/app.js
FN:16,(anonymous_1)
FN:26,(anonymous_2)
FNF:2
...
Run Code Online (Sandbox Code Playgroud)

在SonarQube分析之后,仪表板显示0%的代码覆盖率.

我怀疑它中的路径SF:是错误的来源.因此,我已经改变了sonar.javascript.lcov.reportPath财产使用另一个lcov.info测试不同的值:app.js,./app.js,app/scripts/app.js,./app/scripts/app.js,但没有工作,保持覆盖率为0%.

我错过了什么?

为了以防万一,我在我的配置中有以下配置karma.conf.js:

coverageReporter: {
  reporters: [ …
Run Code Online (Sandbox Code Playgroud)

javascript code-coverage lcov sonarqube karma-coverage

3
推荐指数
1
解决办法
8312
查看次数

Sonarqube 默认覆盖范围为 0,来自带有绝对路径的 Karma Coverage LCOV 文件

当 lcov 文件中的路径为绝对路径时,Sonar 不会检索我的项目的覆盖信息。对于文件:

TN:
SF:/mnt/vg01-data01/jenkins/<jenkins.myhost.com>/jenkins_home/workspace/<job1>/src/app.js
FN:,(anonymous_0)
FN:,(anonymous_1)
FNF:2
FNH:2
FNDA:1,(anonymous_0)
FNDA:2,(anonymous_1)
DA:3,1
DA:4,1
DA:6,1
DA:7,1
DA:8,1
DA:9,1
DA:11,1
DA:18,1
DA:19,1
DA:22,2
DA:27,1
LF:11
LH:11
BRF:0
BRH:0
end_of_record
....
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

...
05:06:27.565 INFO: Analysing [/srv/jenkins/<jenkins.myhost.com>/jenkins_home/workspace/<job1>/coverage/lcov.info]
05:06:27.574 DEBUG: Default value of zero will be saved for file: src/app.js
05:06:27.574 DEBUG: Because was not present in LCOV report.
05:06:27.578 DEBUG: Default value of zero will be saved for file: src/app.spec.js
05:06:27.578 DEBUG: Because was not present in LCOV report.
05:06:27.579 DEBUG: Default …
Run Code Online (Sandbox Code Playgroud)

javascript code-coverage karma-runner sonarqube karma-coverage

3
推荐指数
1
解决办法
2381
查看次数

Angular 单元测试:无法改变业力的报告者

我正在尝试使用带有业力的 JUnit 报告器。

当我启动

$ ng test --watch=false --code-coverage
Run Code Online (Sandbox Code Playgroud)

它总是输出我

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!
Run Code Online (Sandbox Code Playgroud)

问题是,我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 …
Run Code Online (Sandbox Code Playgroud)

unit-testing karma-jasmine karma-coverage angular

3
推荐指数
1
解决办法
2840
查看次数

Angular 9 - 伊斯坦布尔测试覆盖率报告生成为空

我收到了一份空报告,它列出了文件,但没有填写百分比......知道是什么原因造成的吗?

错误信息:

Handlebars:访问已被拒绝解析属性“声明”,因为它不是其父级的“自己的属性”。

我的 package.json 文件:

"dependencies": {
    "@angular/animations": "^9.0.4",
    "@angular/cdk": "^9.1.0",
    "@angular/common": "^9.0.4",
    "@angular/compiler": "^9.0.4",
    "@angular/core": "^9.0.4",
    "@angular/forms": "^9.0.4",
    "@angular/platform-browser": "^9.0.4",
    "@angular/platform-browser-dynamic": "^9.0.4",
    "@angular/router": "^9.0.4",
    "@fullcalendar/core": "^4.4.0",
    "chart.js": "^2.9.2",
    "classlist.js": "^1.1.20150312",
    "core-js": "^2.5.7",
    "font-awesome": "^4.7.0",
    "karma-coverage": "^1.1.1",
    "karma-phantomjs-launcher": "^1.0.4",
    "moment-timezone": "^0.5.17",
    "ngx-clipboard": "^12.2.1",
    "primeicons": "^2.0.0",
    "primeng": "^9.0.0",
    "quill": "^1.3.7",
    "rxjs": "^6.5.3",
    "tslib": "^1.10.0",
    "web-animations-js": "^2.3.2",
    "xlsx": "^0.15.1",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.900.4",
    "@angular/cli": "^9.0.4",
    "@angular/compiler-cli": "^9.0.4",
    "@angular/language-service": "^9.0.4",
    "@types/jasmine": "~2.8.3",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "^12.11.1",
    "jasmine-core": "~2.8.0",
    "jasmine-spec-reporter": …
Run Code Online (Sandbox Code Playgroud)

karma-jasmine karma-coverage angular-cli angular

3
推荐指数
1
解决办法
1928
查看次数

未找到 Karma-coverage:但是,它已安装

我使用本指南http://karma-runner.github.io/0.8/config/coverage.html来设置我的 Karma-coverage 插件。此外,它通过 package.json 文件在本地安装,如下所示:

{
    "name": "myApp",
    "version": "0.1.0",
    "devDependencies": {
        "karma-jasmine": "latest",
        "karma-coverage": "latest",
        "karma-coffee-preprocessor": "latest",
        "karma-chrome-launcher": "latest",
        "coffee-script": "latest"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 Karma.conf 如下所示:

// Karma configuration
// Generated on Sun Dec 07 2014 15:51:07 GMT+0100 (CET)

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],

    // list of files / patterns to …
Run Code Online (Sandbox Code Playgroud)

macos angularjs karma-runner karma-coverage

2
推荐指数
1
解决办法
8251
查看次数

业力 - 如何指向打字稿范围的源地图

我喜欢使用karma-coverage为我的打字稿源文件生成一份报道.我的单元测试是用javascript编写的,我使用的是Jasmine Test框架.

我的文件夹结构如下所示:

node_modules/
app/
  app.js
  app.js.map
  app.ts
  components/
  controllers/
      SampleController.ts
  directives/
  filters/
  services/

unittests/
  karma.conf.js
  components/
  controllers/
      SampleControllerTest.js
  directives/
  filters/
  services/
Run Code Online (Sandbox Code Playgroud)

我的karma.conf.js

module.exports = function(config) {
  config.set({
    frameworks: ['jasmine'],
    plugins: [
          'karma-jasmine',
          'karma-ng-html2js-preprocessor',
          'karma-coverage',
          'karma-phantomjs-launcher',
          'karma-sourcemap-loader'

      ],
    preprocessors: {
        '../app/directives/controls/**/*Template.html' : [ 'ng-html2js' ],

            // source files, that you wanna generate coverage for
            // do not include tests or libraries
            // (these files will be instrumented by Istanbul)
        '../app/app.js' : ['sourcemap', 'coverage' ],

    },
    reporters: ['progress', 'coverage'],

    // web …
Run Code Online (Sandbox Code Playgroud)

javascript typescript karma-runner karma-jasmine karma-coverage

2
推荐指数
1
解决办法
2804
查看次数

Angular Karma Jasmin - 没有 LocaleService 提供者

当我尝试使用 karma jasmin 进行测试时,我收到此错误......

NullInjectorError: StaticInjectorError(DynamicTestModule)[DaterangepickerDirective -> LocaleService]: 
  StaticInjectorError(Platform: core)[DaterangepickerDirective -> LocaleService]: 
    NullInjectorError: No provider for LocaleService!
Run Code Online (Sandbox Code Playgroud)

我的组件

import { Component, OnInit } from '@angular/core';
import { NgxSpinnerService } from 'ngx-spinner';
import { ApiService } from '../../../services/api.service';
import * as moment from 'moment';

@Component({
  selector: 'ngx-item-analytics',
  templateUrl: './item-analytics.component.html',
  styleUrls: ['./item-analytics.component.scss']
})
export class ItemAnalyticsComponent implements OnInit {

  data: any;
  data2: any;
  showBarchart1: boolean = false;
  showBarchart2: boolean = false;
  maxDate: moment.Moment;
  minDate: moment.Moment;
  datepickerChanges:boolean = false;
  dateGrouped:Date;
  alwaysShowCalendars: boolean;
  keepCalendarOpeningWithRange: …
Run Code Online (Sandbox Code Playgroud)

karma-jasmine karma-coverage angular

2
推荐指数
1
解决办法
1922
查看次数