Articles of 代码覆盖

“npm运行覆盖”不与摩卡一起运行

我正尝试在express.js应用程序上使用摩卡来运行伊斯坦布尔 每次运行cmd npm run coverage时,我都会在cmd中得到这个错误: Unable to resolve file [node_modules/mocha/bin/_mocha] Try "istanbul help" for usage npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! dabl-demo@1.0.0 coverage: `istanbul cover node_modules/mocha/bin/_mocha` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the dabl-demo@1.0.0 coverage script. npm ERR! This is probably not a problem with npm. […]

NodeJS代码自动化testing覆盖率

作为NodeJS REST API自定义testing框架的一部分,我想通过比较testing套件收到的所有可能结果,自动检测我的testing何时不再提供适当的覆盖。 有什么方法可以做到这一点? 我们可以假设它被用于REST API,其中包含需要覆盖分析的入口函数(API端点)列表,每个入口函数将以一个已知的“退出函数”结束,以标准方式响应请求者。 这是我到目前为止发现的: 1:基本解决scheme(目前正在实施) 在编写每个REST端点时,手动创build所有可能的结果“代码”的列表[成功,失败,失败,失败等等] 在testing运行之后,确保每个端点的testing套件都能看到列表中的每个代码。 优点:非常基本和易于使用; 不改变性能testing时间 缺点:非常容易出现大量人工检查错误; 如果有5种方法“FailDueToX”,并且只testing其中的一种,则不会标记任何问题。 非常基本的定义“覆盖” 2:静态分析 将代码parsing为某种分析树,然后查找“退出函数”的所有实例 遍历树直到到达API端点,并将该实例添加到端点作为预期的输出(需要保留堆栈跟踪logging以通过散列或类似方式到达那里) 运行testing时,端点将返回堆栈跟踪散列或类似内容,并将其与期望的输出列表进行比较。 优点:自动; 捕获可能导致相同输出代码的不同分支 缺点:生成分析树不是微不足道的; 不会检测永远不会运行的死代码; testing套件需要保持同步 3:分析 我已经在使用GreenHills代码覆盖工具的embedded式系统上完成了这项工作 启动类似dtrace的分析器,并分别logging每个testing的堆栈日志 parsing堆栈日志并将“testing”分配给每行代码 手动分析带注释的代码以查找差距。 优点:半自动; 向开发人员提供有关总覆盖范围的更多信息; 可以看到 缺点:减慢testing; 无法并行执行性能testing; 当可能的结果永远不会发生时,不标志。 还有什么,以及哪些工具可以帮助我进行静态分析和分析目标?

未find本地Npm模块“grunt-template-jasmine-istanbul”

这里是我的gruntconfiguration文件 – https://github.com/mdarif/JavaScript-Boilerplate/blob/1.3/GruntFile.js 它不会加载模块 – grunt-template-jasmine-istanbul并且Local Npm module "grunt-template-jasmine-istanbul" not found. Is it installed? Local Npm module "grunt-template-jasmine-istanbul" not found. Is it installed? 加载类似require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);的grunt任务require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 希望有人能帮忙快点!

CoffeeScript代码覆盖

是否可以在不使用CoffeeScriptRedux编译器(在ibrik中使用这个编译器)的情况下对CofeeScript源执行代码覆盖。 我理解这个新编译器的优点,但看起来还没有完成,不适合我的项目。

报告Jenkins中的Angular 2代码覆盖率 – 覆盖类别之间的不匹配

我们为我们的Angular 2代码库build立了一个Jenkins版本,它以与我们的Java项目的testing和覆盖率报告类似的方式报告testing和代码覆盖率信息。 我们使用Karma来使用以下karma.conf.js生成Cobertura兼容覆盖数据: coverageReporter: { dir: 'coverage/', reporters: [{ type: 'html', dir: 'coverage' }, { type: 'lcovonly', subdir: 'report-lcov' }, { type: 'text-summary' }, // this is the important part: { type: 'cobertura', subdir: '.', file: 'cobertura.xml' } ] } 我们使用Jenkins的Publish Cobertura Coverage Report插件,并将其指向cobertura.xml文件。 我们看到的问题是,我们的实际覆盖率似乎比我们的Jenkins UI中报告的要less得多。 我相信这是因为Jenkins类别的覆盖范围是“包”,“文件”,“类”,“方法”,“线条”和“条件”,而来自Karma的类别是“语句”,“分支” “function”,“线条”。 似乎排队的这两个类别中只有两个是“Lines”,而这是唯一一个报告数量不是100%的数据。 有没有办法正确翻译Karma报道报告中的类别,并将其显示在Jenkins中? 还需要任何解决scheme才能在构build摘要页面上显示覆盖率历史logging的图表。 一些截图: 我们的一些npm test命令: jenkinsbuild立摘要页面: […]

我可以使用伊斯坦布尔为摩卡html-cov的仪器

我正在尝试使用istanbul instrument输出mocha -R html-cov但不能得到它的工作。 我的testing脚本是: test: post: – node_modules/.bin/istanbul cover node_modules/.bin/_mocha -dir $CIRCLE_ARTIFACTS — -u exports -R spec – node_modules/.bin/istanbul instrument . -o lib-cov – cp package.json lib-cov/ # needs to be copied manually – MY_LIB_COV=1 node_modules/.bin/mocha -R html-cov > $CIRCLE_ARTIFACTS/coverage.html 我的testing有以下开关: var mylib = process.env.MY_LIB_COV ? require('../lib-cov') : require('../'); 伊斯坦布尔在lcov-report/index.html给了我一个很好的输出。 摩卡的html-cov在coverage.html给了我'0%覆盖率0 SLOC' 伊斯坦布尔的lcov报告是丑陋的。 我想用漂亮的mocha […]

伊斯坦布尔代码覆盖:如何忽略这样的行?

当执行代码覆盖时,我所有的.catch()语句都被发现了,有没有一种方法可以指定/ * istanbul忽略next * / somewhere? 例如: function list(req, res, next) { const { limit = 50, skip = 0 } = req.query; User.list({ limit, skip }) .then(users => res.json(users)) .catch(e => next(e)); <= this line is marked as uncovered }

如何在不修改源代码的情况下获得Mochatesting的代码覆盖率?

我有很多使用Mocha编写的Node.js应用程序的unit testing。 现在我想为这些testing提供一些testing覆盖率数据。 我已经看到,摩卡支持覆盖率报告,但需要使用一个库,如JSCoverage预处理。 处理JSCoverage基本上并不困难,但是为了一切正常,这个场景需要你修改你的源代码,以便根据环境variables导出原始代码。 这基本上是我不喜欢的一步。 我想要的是: 像往常一样写我的代码。 像往常一样写我的testing使用摩卡。 为我的testing获取代码覆盖率,而无需修改testing或代码。 这可能吗? 如果是这样,怎么样? 任何提示让我这样做的图书馆将是伟大的:-)

Serverside JS覆盖IntelliJ

有没有在智能浏览器运行代码覆盖的方法? http://www.jetbrains.com/webstorm/webhelp/monitoring-code-coverage-for-javascript.html这只是Jetbrains的覆盖教程,但这两个都需要一个浏览器,所以我无法testing我的节点。 js代码。 我敢打赌,我不是唯一一个想要使用IntelliJ的Node.js代码的覆盖报告:) 噶和JsTestDriver似乎都在浏览器中运行testing,所以没有Node.js代码可以与这些testing。 我可以直接从想法运行摩卡testing,但没有覆盖。

以编程方式使用伊斯坦布尔的最小代码

我想执行这个命令 istanbul cover node_modules/mocha/bin/_mocha dist/test 使用伊斯坦布尔程序化API。 但是文档并没有多说,除此之外,一切都是可能的,并链接到庞大的API文档。 我在互联网上找不到任何简短的例子。 我不想产生subprocess或使用NPM中的另一个模块。 我知道如何在没有覆盖的情况下以编程方式运行摩卡,所以这不是问题。