标签: karma-coverage

如何在打字稿角应用程序中获得100%的业力分支代码覆盖率?

我用karma和jasmin单元测试来编写我的角度应用程序.我在打字稿中得到了代码:

module app {
  ...
}
Run Code Online (Sandbox Code Playgroud)

生成的javascript如:

var app;
(function (app) {
...
})(app || (app = {}));
Run Code Online (Sandbox Code Playgroud)

现在,当我运行karma-coverage时,它会向我显示跳过一个分支,它是|| (app = {})) ; 这个.当我测试更多获得app模块的文件时会发生这种情况.

如何在茉莉花中测试它,获得100%的分支覆盖率?

unit-testing angularjs typescript karma-runner karma-coverage

5
推荐指数
1
解决办法
3831
查看次数

业力报道未能显示正确的结果

有关浏览器覆盖率的Karma,我需要一些帮助.我用我在这里运行的测试创建了一个repo:

https://github.com/jotaoncode/web-istanbul

我的报道结果如下: 报道结果

测试仅在函数索引上运行.但正如您所看到的结果是100%并且仅标记绿色文件的第一行.

我已经看到伊斯坦布尔正确显示覆盖值的情况,我已经改变了测试和来源,但没有.

我也有这个业力配置:

module.exports = function(config) {
  config.set({
    //logLevel: 'LOG_DEBUG',

    reporters: ['spec', 'coverage'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun : true,

    autoWatch : false,

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

    port: 9876,

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

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

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

javascript karma-runner karma-mocha karma-coverage

5
推荐指数
1
解决办法
657
查看次数

如何测量Polymer components + .js文件的常用覆盖率?

如何使用.js解决方案中的所有文件测量Polymer组件的公共覆盖范围(对于非组件测试,使用QUnit)?

我试过了karma-coverage,但它只适用于.js文件.

code-coverage karma-runner polymer karma-coverage wct

5
推荐指数
1
解决办法
1656
查看次数

Karma配置排除嵌套目录

我正在使用业力进行单位测试我的角度2应用程序.我有以下目录结构 -

??? src/
    ??? index.js
    ??? index.js.text
    ??? index.test.js
    ??? README.txt
    ??? startuptest.js
    ??? lib/
    |   ??? util.js
    |   ??? util.test.js
    |   ??? filters/
    |       ??? kalman.js
    |       ??? lowpass.js
    ??? test/
    |   ??? main.js
    |   ??? lib/
    |       ??? filters.js
    |       ??? util.js
    ??? vendor/
        ??? jquery.js
        ??? three/
            ??? three.js
            ??? three.fps.js
Run Code Online (Sandbox Code Playgroud)

我想排除我的所有文件

src/lib/!(filters)/**
Run Code Online (Sandbox Code Playgroud)

从报道报告.但我想保留目录其余部分的所有文件

我试过了,

{src/**, src/lib/!(filters)/**}/!(*.spec!).js : coverage 
Run Code Online (Sandbox Code Playgroud)

但它正在跳过一切.

这该怎么做?

参考 - https://github.com/karma-runner/karma/issues/508

javascript testing karma-runner karma-jasmine karma-coverage

5
推荐指数
1
解决办法
1252
查看次数

"ng test"不能同时进行覆盖率报告和TeamCity报告

我正在尝试在TeamCity构建服务器上运行Angular CLI项目的单元测试.

如果我使用命令:

ng test --single-run --code-coverage
Run Code Online (Sandbox Code Playgroud)

然后,正如预期的那样,我得到了测试覆盖率报告,但是各个测试结果没有显示在TeamCity中.

如果我打开TeamCity报告:

ng test --single-run --code-coverage --reporters teamcity
Run Code Online (Sandbox Code Playgroud)

然后测试通过并且TeamCity报告完美地工作,但它无声地生成代码覆盖率报告.此行为在我的本地计算机上是可重现的,因此它与构建服务器的配置方式无关.

有这两个选项应该互相排斥的原因吗?

注意 - 这与在TeamCity上为Karma配置代码覆盖率报告不同.如果报告在那里,那么TeamCity会正确显示它,但如果我打开TeamCity报告标志,那么coverage文件夹就不存在了.

附加信息:

  • Angular-CLI版本1.0.0-rc.4(首次使用1.0.0-rc.1发现问题)
  • Karma版本1.4.1
  • 节点版本6.9.4
  • Windows 7企业版

业力配置:

// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html

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'),
      require('karma-teamcity-reporter')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    files: [
      { pattern: './src/test.ts', watched: false …
Run Code Online (Sandbox Code Playgroud)

teamcity istanbul karma-jasmine karma-coverage angular-cli

5
推荐指数
1
解决办法
2474
查看次数

如何在打字稿中单元测试模型接口?

export interface User {
    name: string;
}
Run Code Online (Sandbox Code Playgroud)

我如何对上述界面进行单元测试,因此Karma可以在代码覆盖率报告中显示它?

我已经尝试创建对象并断言一些属性,但是没有用.测试通过,但业力不在代码覆盖率报告中考虑它.

import { User } from "./user";

describe('User', () => {

    it('test', () => {
        const obj: User = {
            name: "xxx",

        }
        expect(obj.name).toEqual("xxx");
    });

});
Run Code Online (Sandbox Code Playgroud)

jasmine typescript karma-jasmine karma-coverage angular

5
推荐指数
1
解决办法
2729
查看次数

SonarQube和Lcov报告无法解析文件路径

我们正在尝试为我们的角度应用程序制作SonarQube代码覆盖率报告.我们使用Karma生成代码覆盖率报告并将其导入SonarQube分析器.

SonarQube已经为我们的项目提供了C#覆盖,现在我们也希望添加JavaScript代码覆盖.

Teamcity调用,Karma和它创建代码覆盖并将lcov文件和报告文件放入src\Planning.Spa\Coverage\report文件夹.

LCOV文件

TN:
SF:E:/a03/work/bb52cb33e083fc9/src/Planning.Spa/Offer/app/app.component.js
FN:5,(anonymous_1)
FN:6,AppComponent
FN:8,(anonymous_3)
FN:9,(anonymous_4)
Run Code Online (Sandbox Code Playgroud)

Teamcity具有以下MSBuild参数,用于生成C#代码覆盖率和JavaScript覆盖率.

SonarQube MSBuild配置

$sonar=%system.MSBUILD_SONARQUBE_RUNNER%\MSBuild.SonarQube.Runner.exe 
begin /k:"com.test:Test" /n:"MyProject" /v:"%build.number%" 
/d:sonar.cs.dotcover.reportsPaths="$coverageReport" 
/d:sonar.cs.nunit.reportsPaths="$testResults" 
/d:sonar.javascript.lcov.reportPaths="coverage\report\lcov.info"
Run Code Online (Sandbox Code Playgroud)

在运行SonarQube分析时,我们收到以下错误

[14:35:56][Step 13/13] 14:35:56.243 WARN: Could not resolve 114 file paths in
 [E:\a03\work\bb52cb33e083fc9\src\Planning.Spa\coverage\report\lcov.info], 
first unresolved path: E:/a03/work/bb52cb33e083fc9/src/Planning.Spa/Offer/app/app.component.js
Run Code Online (Sandbox Code Playgroud)

我们没有找到使用MSBuild runner运行C#和JavaScript的任何示例.也找不到任何与此相关的答案Could not resolve file paths

我们正努力让它在过去两周内发挥作用,但却找不到任何有用的示例或答案.类似的问题在这里和这里都没有答案

更新声纳分析更多信息

[14:35:43][Step 13/13] 14:35:43.751 INFO: Base dir: E:\a03\work\bb52cb33e083fc9\src\Planning.Spa
[14:35:43][Step 13/13] 14:35:43.751 INFO: Working dir: E:\a03\work\bb52cb33e083fc9\.sonarqube\out\.sonar\com.Planning_com.Planning_6CC487F0-8283-4351-9B65-F1698B1B804E
[14:35:43][Step 13/13] 14:35:43.755 INFO: Source paths: Offer/App/app.component.js, Offer/App/app.component.js.map, Offer/App/Common/order-by.pipe.js
[14:35:43][Step 13/13] 14:35:43.755 …
Run Code Online (Sandbox Code Playgroud)

javascript istanbul sonarqube karma-coverage sonarjs

5
推荐指数
1
解决办法
2989
查看次数

LCOV.INFO 有 SF 的绝对路径

我需要将相对路径作为 SF: karma 覆盖生成的 lcov.info 文件中的参数值。这是为了使 SonarQube 能够收集信息以显示覆盖范围。目前,SF参数具有完整的绝对路径,例如c:\abc\xyz....\src\bar\foo.js

我需要 SF: src\bar\foo.js

有办法实现这一点吗?

karma-runner istanbul sonarqube karma-coverage

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

Angular CLI - 获取覆盖率报告以包含所有来源

我试图弄清楚如何在角度CLI的生成的覆盖率报告中包含我的所有.ts源.目前,我只是覆盖了具有相关规范和测试的文件.

我已经尝试将includeAllSources标志添加到我的karma.conf.js文件中,但这没有任何区别.

这是正确的方法吗?我正在使用Angular CLI 6.1.5

谢谢

karma-runner karma-coverage angular-cli angular

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

无法加载记者“coverage-istanbul”

我正在尝试使用https://webpack.js.org/loaders/istanbul-instrumenter-loader/运行代码覆盖率

这是 karma.conf.js

var testWebpackCfg = require('../webpack/webpack.config.test.js');

module.exports = function(config) {
  config.set({
    basePath: '../../',
    frameworks: ['jasmine'],
    plugins: [ 'karma-webpack', 'karma-jasmine-jquery', 'karma-jasmine', 'karma-chrome-launcher','karma-firefox-launcher', 'karma-coverage','karma-spec-reporter', 'karma-jasmine-html-reporter'],

    preprocessors: {
      'client/test/index.js': ['webpack']
    },

    reporters: [ 'spec', 'coverage-istanbul'],

    coverageIstanbulReporter: {
      reports: [ 'text-summary' ],
      dir: './coverage',
      fixWebpackSourcePaths: true
    },

    files: [
      'client/test/index.js'
    ],

    webpack:  testWebpackCfg,

    // web server port
    port: 9876,
    runnerPort: 9100,
    urlRoot: '/',

    // level of logging
    // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
    logLevel: config.LOG_INFO, …
Run Code Online (Sandbox Code Playgroud)

karma-jasmine karma-coverage karma-webpack

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