问题标签 [istanbul]

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 投票
1 回答
943 浏览

javascript - 让 Istanbul.js 忽略定义(require.js)定义

假设我有以下代码:

伊斯坦布尔报告说只有 1/3 的功能已经过测试。这有点正确,因为我只针对main.initialize.

如何让伊斯坦布尔忽略用于定义回调的函数?

编辑:附加Gruntfile.js配置

编辑:示例规范

0 投票
2 回答
5523 浏览

javascript - 伊斯坦布尔覆盖报告的忽略对象方法

我有一组使用 Mocha 和 jsdom 运行的 Web 应用程序的单元测试。我正在使用 jsdom 而不是真正的浏览器,以便让我的 mocha 单元测试尽可能快地运行,我们将进行运行 selenium 的集成测试,以测试更多真正的浏览器内容。我也在使用 istanbul 生成代码覆盖率报告,但是有些代码无法使用 Mocha/jsdom 进行测试。以这段代码为例:

由于没有真正的浏览器,这种方法无法真正用jsdom进行测试。我遇到的问题是,即使我有/* istanbul ignore next */before 对象方法,它仍然告诉我方法内部的代码没有被覆盖(而不是只是告诉我它被忽略了)。

有没有一种简单的方法可以完全忽略对象方法及其所有内容,而不必/* istanbul ignore next */在方法中的每个语句之前添加?

0 投票
0 回答
501 浏览

javascript - Instanbul + Jasmine + Requirejs 的错误覆盖

我的覆盖率报告有一个小问题。我已经用茉莉花测试了功能,但覆盖率报告告诉我这些功能没有被覆盖。

我正在使用 jasminejs 和 requirejs 来测试我的代码,它也使用了 requirejs(带骨干)。要使用 grunt-contrib-jasmine 运行规范 gunt,使用 grunt-template-jasmine-istanbul 和 grunt-template-jasmine-requirejs。测试运行得很好,如果我将日志放入未覆盖的函数中,我可以看到这些函数被多次调用。

我的设置是否错误,或者为什么没有涵盖 increaseOffset?

这是我的咕噜声配置

这是一个示例类

这里是这门课的一部分测试

预先感谢

0 投票
1 回答
608 浏览

intern - 运行 w/intern-runner:没有输出到终端,没有代码覆盖率数据

我正在通过 intern-runner 脚本启动基于实习生的测试,如下所示:

我的 unittest\intern.js 配置文件包含以下内容:

});

终端/命令窗口的输出看起来很有希望:

Chrome 浏览器确实启动了,我看到我的单元测试正在运行并传入浏览器内容。但是,控制永远不会回到终端/命令窗口——我看不到“634/634 测试通过”之类的东西,我必须按 Ctrl+C 来终止实习生运行程序。当然,不会生成代码覆盖率文件。这可能是由于我的文件结构吗?Intern 文件位于与这些单元测试完全不同的目录中——我没有从 Intern 库和单元测试文件(以及它们正在测试的产品文件)的公共父目录中调用 intern-runner。

如果这很重要,我可以创建一个图表来说明文件/目录结构。请注意,我确实稍微更改了实习生结构,例如:

即,我所做的改变是在“intern”之后插入一个额外的“intern-2.2.2”目录,并且包含intern-runner.cmd的“.bin”目录是“intern-2.2.2”的对等体。希望这不会令人困惑。:(

请注意,“proxyUrl”配置属性表示单元测试文件和产品文件可从 Web 服务器获得的 URL。通过为此目的配置proxyUrl,我做得对吗?如果我省略它,则不会运行,因为使用的默认值是 localhost:9000。我在 Github 上的“配置实习生”文章中看到 proxyUrl 是“仪器代理的 URL”,但我不太明白这意味着什么。

0 投票
2 回答
4796 浏览

node.js - 'istanbul' 未被识别为内部或外部命令

我刚刚将istanbul测试覆盖模块添加到我的 node.js 应用程序中,但是当我运行时(从命令提示符):

如文档中所述,我得到:

我在 Windows 7 下。npm 安装没有返回错误。我在文档中看不到有关额外安装步骤的任何内容。

我错过了什么?

0 投票
4 回答
7302 浏览

javascript - 如何覆盖伊斯坦布尔的 React jsx 文件?

我正在尝试将我现有的测试流程集成到现在包含 React,但我在代码覆盖率部分上苦苦挣扎。通过遵循这个项目/教程,我已经能够让我的单元测试正常工作 - https://github.com/danvk/mocha-react - http://www.hammerlab.org/2015/02/14/testing -react-web-apps-with-mocha/

我一直在使用伊斯坦布尔来覆盖我的节点代码,它运行得很好。但是,我无法让它覆盖我在测试中使用的 jsx 文件。

这是现有伊斯坦布尔任务的示例,它在 vanilla js 上也可以正常运行(节点后端代码)

我的问题(我认为)是我无法让伊斯坦布尔识别 jsx 文件,或者它们没有与测试中运行的文件进行比较。我尝试使用gulp -react 模块将 jsx 预编译为 js,以便伊斯坦布尔可以使用它,但我不确定它是否有效。它没有以某种方式被覆盖,我不确定问题出在哪里。

任何想法我做错了什么?或者关于如何将测试运行器(最好是伊斯坦布尔)集成到 Gulp-Mocha-React 项目中的任何线索?

0 投票
0 回答
1442 浏览

sonarqube - SonarQube 不接受 instanbul 代码覆盖率 lcov.info 文件

我正在尝试通过传递 lcov.info 文件将 instanbul 代码覆盖率导入 sonarQube。这是我的 sonar-project.properties 文件的样子。

目前声纳正在生成它自己的代码覆盖率报告并显示单元测试代码覆盖率%,而不是显示我正在传递的 lcov.info 文件中的内容

0 投票
2 回答
2464 浏览

javascript - Jasmine 测试三元条件

假设我们有以下 JavaScript 代码。

我们如何能够为 Jasmine 中的任一场景编写测试?

它需要两个单独的描述吗?或者我们能否在测试本身中有一个三元条件?

谢谢!杰里米

0 投票
0 回答
1113 浏览

node.js - 如何在伊斯坦布尔中包含与测试用例不在同一目录中的所需文件?

我正在尝试做一些简单的事情,但它不起作用..我一定是在做一些愚蠢的事情。

我将伊斯坦布尔与 Mocha 一起用于代码覆盖率 + 单元测试。

在正在测试的代码中,它使用了正在被require“d”的模块中的函数,我希望将这些导入的模块包含在代码覆盖范围内——但事实并非如此。

我明确地包含了一个require带有完整路径的库(它与测试用例所在的目录不同)

稍后,测试用例正在调用该模块中的函数startWorkFlow

但是,Istanbul 没有进入引用的函数startWorkFlow,它只为我提供了测试文件的覆盖范围。

我需要的是代码覆盖范围以扩展到require测试用例的模块中的所有功能。

我这样称呼伊斯坦布尔:

有什么方法可以让伊斯坦布尔检测不在测试用例所在目录(或子目录)中的文件?我犯了什么简单的错误?

干杯!

0 投票
2 回答
1157 浏览

node.js - 如何忽略伊斯坦布尔承诺的所有失败案例

我正在使用Q用于 NodeJS 中的 Promise 以及使用 Istanbul 进行代码覆盖。有没有办法忽略所有失败案例。我的大部分都是包罗万象的,以防万一发生我无法在测试中复制的意外情况。

例如:

必须将该注释添加到我的代码中的每个失败条件似乎有点费力......