问题标签 [jscoverage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6186 浏览

jenkins - Qunit + JSCoverage + 詹金斯

我已经开始使用 Qunit 来测试我的 JS 代码。我正在研究 JSCoverage 以便稍后生成覆盖率报告。我们有一个 CI 服务器 (Jenkins),它已经用我们的 PHP 代码做了一些事情,我想知道是否有人可以评论我如何将 Qunit 和 JSCoverage 中的报告集成到 Jenkins

谢谢斯帕什

0 投票
2 回答
3113 浏览

jasmine - 使用 Jasmine 运行 JScoverage

对 Javascript 编码有点陌生,所以请多多包涵。

我通过jscoverage 自动化测试阅读了以下链接 jasmine

但是,由于我没有 Ruby 项目,所以它似乎不是我想要的。

以下是我执行的步骤:

  1. 将我要测试的 js 文件复制到目录“输入”
  2. 运行以下命令“jscoverage 输入输出”
  3. 将 Jasmine 的 spec 和 src 文件夹以及 SpecRunner.html 复制到“输出”中
  4. 将检测的源文件复制到 src
  5. 在 Chrome 中打开 jscoverage.html
  6. 在“浏览器”选项卡中打开 SpecRunner.html

此时,浏览器页面显示我的 Jasmine 测试。但是,“摘要”页面显示 0 个已测试文件,并且“源”选项卡显示为灰色。

我知道我在某个地方搞砸了,但不确定在哪里。请帮帮我。谢谢!

0 投票
1 回答
289 浏览

javascript - 我应该如何衡量 JS 的单元测试覆盖率?我对 jscoverage 不满意

我想衡量 Javascript 的单元测试覆盖率。

jscoverage 是最有用的工具之一。但是,jscoverage 只能衡量代码在单元测试中通过与否。我想衡量包括逻辑在内的覆盖范围。

我应该如何衡量 JS 的单元测试覆盖率?

0 投票
1 回答
1535 浏览

unit-testing - 从 JSCover/JSCoverage coverage.xml 或 jscoverage.json 获取 LCOV 兼容输出

概括

我最近从使用Google 的 JsTestDriver切换到了Testem但错过了LCOV HTML Code Coverage Reports,有没有办法将JSCover输出转换为 LCOV 格式,所以我可以使用 genhtml 创建这样的报告

细节

我正在使用 Testem、Jasmine 和 PhantomJS 从一个 JSCoverage 示例中工作,它生成以下 2 种覆盖输出格式;

覆盖率.xml

jscoverage.json

有没有办法将上述内容覆盖到 js-test-driver 输出的 jstestdriver.conf-coverage.dat 格式中?

谢谢。

0 投票
2 回答
1455 浏览

ruby-on-rails - Rails + Capybara-webkit – javascript 代码覆盖率?

我正在研究使用 capybara-webkit 对应用程序进行一些接近现实的测试。这是绝对必要的,因为该应用程序具有非常丰富的基于 JS 的 UI,并且 Rails 部分主要是 API 调用。

问题是:是否有任何工具可以集成到可以检测 Javascript 代码并报告其覆盖率的测试管道中?这里的关键是能够轻松集成到测试工作流中(就像 rcov/simplecov)——我不喜欢自己用 jscoverage 或类似物来做这个想法:)

提前谢谢了。

0 投票
2 回答
1144 浏览

javascript - 单元测试中的代码覆盖率

我正在尝试获取我的单元测试未涵盖的代码行。

我用 mocha 进行单元测试,它提供了一个报告器“json-cov”,它应该报告我没有执行多少行。

我有两个文件,第一个(foo.js):

第二个(test.js):

当我运行时,mocha -R json-cov test.js我得到以下结果:

我做错了什么,所以 sloc、命中、未命中和覆盖率为 0?

我也尝试使用节点require而不是 jscs,但没有成功。

编辑:我刚刚尝试过mocha -R json-cov test.js --coverage,如果我使用 jscs 会导致错误require。当我使用节点时require,结果与上面相同。

编辑:我什至不能从控制台运行 jscoverage。我创建了一个文件夹 foo 和 foo-cov 并将我的 foo.js 复制到文件夹 foo 中。然后我跑了jscoverage foo foo-cov,这给了我一个错误abs source path or abs dest path needed!。我还尝试了绝对路径和其他一些排列参数的方法。没有成功。如何为 jscoverage 准备文件?

编辑:如果有任何相关性,我正在使用 Windows。

编辑:刚刚意识到不仅可以通过 npm 获得一个“jscoverage”包,还有一个“visionmedia-jscoverage”。试图安装那个失败。可能是因为 Windows 与 Linux。

编辑:让它工作。我现在没有使用节点包来准备代码,而是从控制台运行 jscoverage.exe(从这里下载),然后使用mocha -R html-cov test.js > coverage.html. 现在我遇到了一些代码被转义的问题。所以我得到

代替

突出显示。

编辑:标签被转义了,因为它们是通过使用以下代码的翡翠模板呈现的:td.source= line.source

更改它以td.source!= line.source解决我遇到的最后一个问题。

0 投票
2 回答
1852 浏览

jenkins - 无法让 JSCover 和 PhantomJS 在 Cloudbees 上运行 Jasmine 测试

我目前正在尝试在 Web 服务器模式下运行 JSCover 以确定在 PhantomJS 无头浏览器中执行的 Jasmine 测试的覆盖范围。我也在使用 grunt+nodejs 来启动测试。

我在 gruntfile 中用于启动 JSCover 服务器并执行 phantomJS 的代码是:

但是,当我在 cloudbees 中的 Jenkins 节点上运行 Web 服务器,然后针对它运行 phantomjs 时,我收到以下错误之一:

  • 一些测试开始运行,但随后该过程失败:

    /li>
  • PhantomJS 无法访问 JSCover 服务器:

    /li>

对于第二个错误,我尝试使用我设置的不同端口和主机名(例如,主机名使用 127.0.0.1 或 localhost,端口使用 4327、43287 等)。端口不是在构建时动态设置的——我将它们硬编码在我的 grunt 脚本中。

关于为什么会发生上述错误或为什么我在 Cloudbees Jenkins 节点上运行和访问 JSCover 服务器时遇到问题(但从未在我的本地机器上)有任何想法吗?

0 投票
1 回答
33860 浏览

javascript - 如何告诉 Sonar 使用我的 LCOV 文件进行代码覆盖

我们有一个包含一堆 javascript 文件的 Jenkins 作业。我们通过 grunt 构建我们的项目,并在构建结束时运行 JSCover 来运行我们的单元测试并收集代码覆盖率。这一切都有效。我们得到了一个不错的 LCOV 文件。

我们现在想将 LCOV 文件上传到 Sonar,但我不知道该怎么做。我们正在从 Jenkins 构建我们的项目,作为一个自由风格的项目。

我尝试使用声纳的各种项目属性,但没有爱:

我怀疑问题出在“高级参数”下,但我不知道如何告诉声纳,“请使用我的 LCOV 文件进行代码覆盖”。

0 投票
2 回答
1554 浏览

node.js - 摩卡和 JSOver

我正在使用 mocha 测试我的 nodejs 代码。我想获得一份覆盖率报告。我找到了我正在尝试运行的JSOver 。但我越来越

我正在执行:

有什么帮助吗?

0 投票
0 回答
645 浏览

javascript - 如何在 Sonar 中重用来自 JSCover 的 LCOV 报告以进行 javascript 代码覆盖

我正在使用 JSCover 来捕获我的 javascript 文件的覆盖范围。JSCover 以 json 格式输出覆盖率,我可以使用给定的 html 文件查看覆盖率结果。

我正在使用以下方法将 json 文件转换为 lcov:

这是我在我的 sonar.propoerties 文件中设置的

但我看不到报道。为什么?