问题标签 [isparta]

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 回答
1536 浏览

javascript - 业力覆盖和 Babel+Browserify 预处理

我正在使用 Karma 来测试我的 ES6 代码。当我添加karma-coverage到组合中时,我需要添加覆盖工具的所有源文件以生成有用的报告,但是当我这样做时,Karma 在所有浏览器中都会给我这个错误:

PhantomJS 1.9.8 (Mac OS X 0.0.0) 错误

错误:不变违规:_registerComponent(...):目标容器不是 DOM 元素。

在 /var/folders/55/9_128mq95kz1q_2_vwy7qllw0000gn/T/41cf272955d73fbba8ad1df941172139.browserify:46444:0 <- ../../node_modules/react/lib/invariant.js:49:0

我的业力配置文件是:

如果我'./client/**/*.js',files数组中删除,测试工作,但覆盖率只显示测试代码。我使用来自 gulp 的 Karma gulp-karma,但我想这与问题没有任何关系。

0 投票
1 回答
413 浏览

node.js - 如何为 Mocha 定义测试目录?

我已经使用 ES6 编写了测试并执行了它们(带有代码覆盖率报告),如下所示:

但是,没有找到测试。它仅在我有./test目录时才有效。

关于如何定义不同的测试目录有什么建议吗?

0 投票
1 回答
1040 浏览

unit-testing - 如何使用 isparta、webpack、jasmine 和 karma 获得准确的代码覆盖率?

在尝试使用 webpack、isparta、jasmine 和 karma 的组合时,我很难获得正确的代码覆盖率。测试运行结束时的数字不能正确反映 ES6 代码。但是,UI 显示了正确的 ES6 文件,具有正确的突出显示,只是数字不正确。

这是我正在谈论的内容的屏幕截图。

错误的代码覆盖率:

错误的代码覆盖率

代码和突出显示是正确的,但数字不正确。例如,Statement 编号完全关闭。我假设这些数字来自转译的代码。

这是我的 karma.config.js:

这是我的 webpack 配置:

这是 test.context.js:

0 投票
1 回答
1925 浏览

sonarqube - SonarQube 无法读取 JavaScript 的 lcov.info

我在我的 JavaScript 单元测试中使用 karma-coverage 和 isparta-loader 来生成lcov.info文件。

但是,当我使用JavaScript Plugin运行 SonarQube 分析时,不会生成测试覆盖率报告。如果lcov.info包含 1 个文件的数据,则覆盖率报告不会失败,但如果lcov.info包含 2 个或更多文件的数据,则始终失败:

13:43:27.635 信息 - 将结果存储在数据库中 13:43:27.649 调试 - 执行 org.sonar.batch.phases.GraphPersister 13:43:27.714 调试 - 执行 org.sonar.batch.index.SourcePersister 13:43:29.852调试 - 在项目上发布信号量:org.sonar.api.resources.Project@6b1e6f8b[id=7859,key=func.salesorder NG,qualifier=TRK],关键是 batch-func.salesorderNG 信息:------ -------------------------------------------------- ---------------- 信息:执行失败信息:---------------------------- -------------------------------------------- 总时间:4:14.804 s 最终内存:23M/828M 信息:---------------------------------------- --------------------------

错误:Sonar runner 执行期间出错
org.sonar.runner.impl.RunnerException:无法在 org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91) 在 org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher. java:75) 在 java.security.AccessController.doPrivileged(Native Method) 在 org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) 在 org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher. java:50) 在 org.sonar.runner.api.Runner.execute(Runner.java:100) 在 org.sonar.runner.doExecute(EmbeddedRunner.java:102) 在 org.sonar.runner.Main .executeTask(Main.java:70) at org.sonar.runner.Main.execute(Main.java:59) at org.sonar.runner.Main.main(Main.java:53) 原因:java.lang。IllegalStateException:无法在 org.sonar.batch.phases.DatabaseModePhaseExecutor.executePersisters(DatabaseModePhaseExecutor.java:165) 在 org.sonar 的 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:84) 保存文件源。 batch.phases.DatabaseModePhaseExecutor.execute(DatabaseModePhaseExecutor.java:133) 在 org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:264) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java: 92) 在 org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) 在 org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:235) 在 org.sonar.batch.scan.ProjectScanContainer .scanRecursively(ProjectScanContainer.java:230) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 在 org.sonar.api.platform 的 org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:220) .ComponentContainer.execute(ComponentContainer.java:77) 在 org.sonar.batch.scan.ScanTask.scan(ScanTask.java:57) 在 org.sonar.batch.scan.ScanTask.execute(ScanTask.java:45) 在org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:135) 在 org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) 在 org.sonar.api.platform.ComponentContainer.execute( org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java: 的 ComponentContainer.java:77)158)在 org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) 在 org.sonar.runner.Batch.IsolatedLauncher 的 org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95) .execute(IsolatedLauncher.java:48) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 在 java.lang。 reflect.Method.invoke(Unknown Source) at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) ... 9 更多原因:java.lang.ArrayIndexOutOfBoundsException:java.util 中的 -1。 java.util.ArrayList 中的 ArrayList.elementData(未知来源)。get(Unknown Source) at com.google.protobuf.RepeatedFieldBuilder.getBuilder(RepeatedFieldBuilder.java:245) at org.sonar.server.source.db.FileSourceDb$Data$Builder.getLinesBuilder(FileSourceDb.java:2911) at org. sonar.batch.index.SourceDataFactory.applyLineMeasure(SourceDataFactory.java:183) 在 org.sonar.batch.index.SourceDataFactory.applyLineMeasures(SourceDataFactory.java:117) 在 org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory. java:76) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index 的 org.sonar.batch.index.SourcePersister.computeData(SourcePersister.java:152) .SourcePersister.persist(SourcePersister.java:81) ... 33 更多org.sonar.server.source.db.FileSourceDb$Data$Builder.getLinesBuilder(FileSourceDb.java:2911) 上的 RepeatedFieldBuilder.getBuilder(RepeatedFieldBuilder.java:245) java:183) 在 org.sonar.batch.index.SourceDataFactory.applyLineMeasures(SourceDataFactory.java:117) 在 org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory.java:76) 在 org.sonar.batch.index .SourcePersister.computeData(SourcePersister.java:152) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) 。 .. 还有 33 个org.sonar.server.source.db.FileSourceDb$Data$Builder.getLinesBuilder(FileSourceDb.java:2911) 上的 RepeatedFieldBuilder.getBuilder(RepeatedFieldBuilder.java:245) java:183) 在 org.sonar.batch.index.SourceDataFactory.applyLineMeasures(SourceDataFactory.java:117) 在 org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory.java:76) 在 org.sonar.batch.index .SourcePersister.computeData(SourcePersister.java:152) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) 。 .. 还有 33 个server.source.db.FileSourceDb$Data$Builder.getLinesBuilder(FileSourceDb.java:2911) 在 org.sonar.batch.index.SourceDataFactory.applyLineMeasure(SourceDataFactory.java:183) 在 org.sonar.batch.index.SourceDataFactory。 applyLineMeasures(SourceDataFactory.java:117) at org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory.java:76) at org.sonar.batch.index.SourcePersister.computeData(SourcePersister.java:152) at org.sonar .batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) ... 33 更多server.source.db.FileSourceDb$Data$Builder.getLinesBuilder(FileSourceDb.java:2911) 在 org.sonar.batch.index.SourceDataFactory.applyLineMeasure(SourceDataFactory.java:183) 在 org.sonar.batch.index.SourceDataFactory。 applyLineMeasures(SourceDataFactory.java:117) at org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory.java:76) at org.sonar.batch.index.SourcePersister.computeData(SourcePersister.java:152) at org.sonar .batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) ... 33 更多183)在 org.sonar.batch.index.SourceDataFactory.applyLineMeasures(SourceDataFactory.java:117) 在 org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory.java:76) 在 org.sonar.batch.index.SourcePersister .computeData(SourcePersister.java:152) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) ...还有 33 个183)在 org.sonar.batch.index.SourceDataFactory.applyLineMeasures(SourceDataFactory.java:117) 在 org.sonar.batch.index.SourceDataFactory.consolidateData(SourceDataFactory.java:76) 在 org.sonar.batch.index.SourcePersister .computeData(SourcePersister.java:152) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) ...还有 33 个persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) ... 还有 33 个persist(SourcePersister.java:93) 在 org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:81) ... 还有 33 个

显示lcov.info以下信息:

0 投票
2 回答
2316 浏览

javascript - 业力覆盖率报告显示代码已覆盖(显然未覆盖)

我试图生成 HTML 覆盖率报告,但它不包含我期望的输出。也许我在这里错了,但它应该只显示那些从规范文件中调用的行和方法,对吗?

不知何故,它没有。

更新:

我创建了一个存储库来提供一个工作示例,概述了问题:

https://github.com/gearsdigital/stunning-octo-train

这是我的(测试)项目设置。如果需要,我可以将其推送到 GitHub 存储库,因为我不知道如何设置 JSFiddle 来运行此代码。

TL;博士

有一个生成 HTML 覆盖率报告的过程。该报告显示了已覆盖的代码,显然没有覆盖,因为没有可用的测试。

业力.conf.js:

webpack.config.js:

webpack.test.config.js:

bootstrap.js:

计算器.js:

bootstrap.spec.js:

生成的报告:

我希望add()被发现,因为它没有在任何测试中调用,而是在bootstrap.js.

覆盖率报告

项目结构:

项目树

0 投票
1 回答
99 浏览

node.js - 我应该更改环境变量以在 Windows 中的 Cygwin 下使用 npm 脚本吗?

我应该更改环境变量以能够在 Windows 中的 Cygwin 下使用 npm 脚本吗?

在 Windows 中尝试在 Cygwin 下使用 npm 脚本时,我收到以下错误:

我将 node v4.2.2 与 npm 2.14.7 一起使用。

我运行了以下命令:

我已经成功安装了isparta,babel-node:

来自cygwin终端的斯巴达:

Windows cmd中的斯巴达:

来自 cygwin 终端的 babel-node:

来自 windows cmd 的 babel-node:

0 投票
0 回答
188 浏览

node.js - 我应该更改环境变量以在 Windows 中使用 msys git bash 下的节点脚本吗?

我应该更改环境变量以便能够在 Windows 中的 msys git bash 下使用我的 npm 脚本吗?

我有以下测试脚本:

在尝试运行此脚本时,我收到以下错误:

isparta 作为全局模块安装:

可以通过“which”和“where”找到它。

来自 msysgit 终端的 isparta:

来自 Windows cmd 的 isparta:

0 投票
0 回答
55 浏览

angularjs - 将 isparta 与 karma 与 webpacked 模块应用程序一起使用

我正在尝试对我的 ES2015 角度代码进行测试覆盖。

我的 webapp 是由 gulp-angular 生成的,它默认提供一个任务,该任务使用 webpack 将我的所有 angular 模块捆绑在一个文件中,使用 babel 转译器生成 ES5 代码。

所以目前,当我尝试进行代码覆盖时,我只在我的 ES5 代码和一个文件(捆绑包)上拥有它。

我想把它放在我的 ES2015 代码和多个文件上,而不是在生成的文件上。知道我的测试任务首先启动任务以捆绑应用程序然后使用生成的文件启动测试,我想知道是否有可能在该状态下获得我想要的?(或者在那种情况下我不能使用 webpack?)

0 投票
4 回答
1123 浏览

javascript - Gulp Node.js 伊斯坦布尔 Isparta

我正在尝试使用伊斯坦布尔和 Isparta 进行单元测试覆盖,但遇到了一些麻烦。

实际上,这是我的 gulp 文件任务:

当我启动 gulp “test” 任务时,出现以下错误:

如何防止这些错误发生?

0 投票
1 回答
699 浏览

javascript - gulp-istanbul、isparta 和 ES6 测试覆盖率

我正在构建一个 REST API,其中有许多单元测试。

我现在需要一些关于它们的信息,比如代码覆盖率。

我已经阅读了许多关于伊斯坦布尔Isparta的文章,以及它们运行 ES6 代码(本文)的测试覆盖率(在 mocha 的帮助下)的能力,所以我想使用它们。

我正在使用 NodeJS 0.12.7,并且我使用 Babel 转译器将我的 ES6 代码转换为 ES5。

我使用 gulp 任务,如下所示:


但是,当尝试使用以下工具时,我遇到了这些错误:

这意味着伊斯坦布尔无法识别 ES6 代码。我可能在那里遗漏了一些东西。

所以我的问题是:

如何使用 Node 0.12.7 对我的 ES6 代码(而不是 ES5 代码,在每个类构造函数中有许多生成的代码,例如 try/catch)进行单元测试和应用测试覆盖率?