【问题标题】:Karma-Coverage always outputs 100%业力覆盖率始终输出 100%
【发布时间】:2016-04-05 12:53:09
【问题描述】:

我很难开始为我的应用编写单元测试。 我的覆盖率总是报告 100%。我做了简单的测试,结果应该是 50%,但业力覆盖率不这么认为。业力进展如何报告正确的结果,但我需要使覆盖工作。

这是我的 karma.conf.coffee:

module.exports = (config) ->
config.set
basePath: ""
frameworks: ["jasmine"]
files: [
  #"server/*_spec.js",
  #"server/*.js",
  #"client/app/final/.js"
  #"client/*_spec.js"
  "test.js"
  "test_spec.js"
]
exclude: []
preprocessors: {}
reporters: ["progress", "coverage"]
preprocessors:
  "test.js": ["coverage"]
coverageReporter:
  type : "html",
  dir : "coverage/"
port: 9876
colors: true
logLevel: config.LOG_INFO
autoWatch: false
browsers: [
  "Chrome"
  #"Firefox" add to package.json::devDependencies:["karma-firefox-launcher"]
  #"PhantomJS" add to package.json::dependencies:["phantomjs"] and package.json::devDependencies["karma-phantomjs-launcher"]
]
singleRun: true
concurrency: Infinity

这是 test.js:

function test(a) {
   return a
}

function ivo() {
   return "ivo"
}

最后是 test_spec.js

describe("test", function() {
      it("it tests", function() {
    expect(test(3)).toEqual(3);
  });
});

describe("ivo", function() {
  it("it ivos", function() {
    expect(ivo()).toEqual("ovi");
  });
});

业力进度结果:

karma start
31 12 2015 17:12:48.598:INFO [karma]: Karma v0.13.16 server started at    http://localhost:9876/
31 12 2015 17:12:48.610:INFO [launcher]: Starting browser Chrome
31 12 2015 17:12:50.007:INFO [Chrome 47.0.2526 (Linux 0.0.0)]:  Connected on socket q97o45wS4ctU_z4DAAAA with id 35753464
Chrome 47.0.2526 (Linux 0.0.0) ivo it ivos FAILED
    Expected 'ivo' to equal 'ivo1'.
        at Object.<anonymous> (/home/ivo/ivo/diplomna3/test_spec.js:9:19)
Chrome 47.0.2526 (Linux 0.0.0): Executed 2 of 2 (1 FAILED) (0.004 secs / 0.01 secs)

【问题讨论】:

    标签: karma-jasmine karma-coverage


    【解决方案1】:

    测试覆盖率表示已测试源的百分比,而不是通过测试的百分比。

    因为你在 test.js 中有两个函数并且每个函数都有一个测试,所以覆盖率是 100%。

    但是,实际上只有一项测试通过了。所以你的成功率是 50%。

    【讨论】:

    • 那么,有什么方法可以显示成功率吗?我正在考虑像 ruby​​ 的 rspec 之类的东西,它甚至显示了哪些行失败了......
    • 考虑使用第二个记者,例如karma-spec-reporter 或karma-htmlfile-reporter
    【解决方案2】:

    这是错误

    karma start --log-level=DEBUG
    31 12 2015 18:24:29.017:DEBUG [plugin]: Loading plugin karma-spec-reporter.
    31 12 2015 18:24:29.024:DEBUG [plugin]: Loading plugin karma-coverage.
    /home/ivo/ivo/diplomna3/node_modules/di/lib/injector.js:9
      throw error('No provider for "' + name + '"!');
      ^
    
    Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)
      at error (/home/ivo/ivo/diplomna3/node_modules/di/lib/injector.js:22:12)
      at Object.parent.get     (/home/ivo/ivo/diplomna3/node_modules/di/lib/injector.js:9:13)
      at [object Object].get (/home/ivo/ivo/diplomna3/node_modules/di/lib/injector.js:54:19)
      at /home/ivo/ivo/diplomna3/node_modules/karma/lib/server.js:137:20
      at Array.forEach (native)
      at [object Object].Server._start (/home/ivo/ivo/diplomna3/node_modules/karma/lib/server.js:136:21)
      at [object Object].invoke (/home/ivo/ivo/diplomna3/node_modules/di/lib/injector.js:75:15)
      at [object Object].Server.start (/home/ivo/ivo/diplomna3/node_modules/karma/lib/server.js:101:18)
      at Object.exports.run (/home/ivo/ivo/diplomna3/node_modules/karma/lib/cli.js:231:26)
      at requireCliAndRun (/usr/local/lib/node_modules/karma-cli/bin/karma:44:16)
      at /usr/local/lib/node_modules/karma-cli/bin/karma:54:12
      at /usr/local/lib/node_modules/karma-cli/node_modules/resolve/lib/async.js:44:21
      at ondir (/usr/local/lib/node_modules/karma-cli/node_modules/resolve/lib/async.js:187:31)
      at /usr/local/lib/node_modules/karma-cli/node_modules/resolve/lib/async.js:153:39
      at onex (/usr/local/lib/node_modules/karma-cli/node_modules/resolve/lib/async.js:93:22)
      at /usr/local/lib/node_modules/karma-cli/node_modules/resolve/lib/async.js:24:18
      at FSReqWrap.oncomplete (fs.js:83:15)
    

    这是我在配置中更改的内容:

      reporters: ["spec", "coverage"]
      plugins: ["karma-spec-reporter", "karma-coverage"]
      preprocessors:
        "test.js": ["coverage"]
      specReporter: {}
    

    【讨论】:

    • 如果我删除它,插件会出现错误,它可以正常工作
    • 因为我们已经回答了最初的问题(关于覆盖率为 100%),让我们将此问题标记为已回答。请打开一个新问题来讨论插件错误。
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2016-03-21
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多