标签: istanbul

Jenkins 与本地环境的纽约报告输出不同

当我尝试生成 Jenkins 管道作业的综合覆盖率报告时,发生了一些奇怪的事情。

我有一个 Nx 支持的 Angular monorepo,并且正在生成其中包含的所有库和项目的覆盖率报告。

我已将以下脚本放在一起来运行测试,然后用于nyc合并和报告操作。

const { execSync } = require('child_process');
const packageJSON = require("../package.json");

const EXCLUDE_UNIT_TEST = packageJSON.buildData.excludeUnitTest;
 
const run = (commands) => {
  commands.forEach((command) => execSync(command, { stdio: 'inherit' }));
};
 
run([
  `rm -rf coverage`,
  `npx nx run-many --target=test --all --maxWorkers=4 --exclude=${EXCLUDE_UNIT_TEST} --coverage=true`,
  `npx copyfiles -f 'coverage/**/*coverage.json' coverage/project-parts`,
  `npx nyc merge coverage/project-parts coverage/nyc/combined.json`,
  `npx nyc report --reporter html-spa --reporter lcov -t coverage/nyc --report-dir coverage/combined`
]);
Run Code Online (Sandbox Code Playgroud)

这在本地对我来说效果很好,我看到我的所有库/项目都有一个 HTML 报告(lcov 格式和 html-spa 报告)。

但是,当在 …

jenkins istanbul jenkins-pipeline nyc nrwl-nx

5
推荐指数
1
解决办法
270
查看次数

Sourcemap + istanbul/isparta webpack 的代码覆盖率 + babel (for es6) + mocha (+karma)

我在https://github.com/danielbush/webpack-babel-karma-sourcemap-coverage有一个测试项目

\n\n

它由两个简单的源文件组成src/,其中一个有一个故意错误(src/lib2.js )。

\n\n

我想使用 babel 进行 webpack 和从 ES6 到 ES5 的转译,并使用 Karma 在此包上运行 Mocha 测试。

\n\n

我已经添加了源映射并对此进行了测试,以便我可以看到原始文件的行号。

\n\n

对我来说,堆栈跟踪如下所示:

\n\n
21 02 2016 16:03:15.445:INFO [karma]: Karma v0.13.21 server started at http://localhost:9876/\n21 02 2016 16:03:15.451:INFO [launcher]: Starting browser Chrome\n21 02 2016 16:03:16.551:INFO [Chrome 48.0.2564 (Linux 0.0.0)]: Connected on socket /#yRS32ons0_2HGhrwAAAA with id 3072946\n\nSTART:\n  lib1\n    \xe2\x9c\x96 should return 1\n\nFinished in 0.015 secs / 0.001 secs\n\nSUMMARY:\n\xe2\x9c\x94 0 tests completed\n\xe2\x9c\x96 1 test failed\n\nFAILED TESTS:\n  lib1\n    \xe2\x9c\x96 …
Run Code Online (Sandbox Code Playgroud)

javascript istanbul webpack karma-coverage isparta

5
推荐指数
1
解决办法
3896
查看次数

有人能够使用 Karma/Jasmine 在 WebStorm 上启用代码覆盖率突出显示吗?

尽管我可以使代码覆盖率测量(单元测试覆盖的文件和代码行的百分比)正常工作,但我无法使其在编辑器中突出显示所覆盖的代码。

我有业力覆盖

提前致谢。

编辑:根据要求添加了屏幕截图。抱歉我不得不模糊一些信息。

截图 截图2

javascript webstorm istanbul karma-jasmine karma-coverage

5
推荐指数
0
解决办法
680
查看次数

为什么代码覆盖率在伊斯坦布尔不起作用?

我正在尝试为我的 Node 项目运行代码覆盖率,但由于某种原因它不起作用。我正在使用 chai+mocha+istanbul,也尝试过 nyc。我的代码同时具有 ES5 和 ES6 组件,并且我为此使用编译器标签。测试运行良好,但代码覆盖率没有显示任何内容。

11 passing (15ms)
    ----------|----------|----------|----------|----------|----------------|
    File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
    ----------|----------|----------|----------|----------|----------------|
    All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
    ----------|----------|----------|----------|----------|----------------|
Run Code Online (Sandbox Code Playgroud)

我的 package.json 的相关部分:

"test": "mocha test/app.test.js --compilers js:babel-core/register",
"test:cover": "nyc npm t",
"coverage": "babel-node ./node_modules/.bin/isparta cover mocha -- --compilers js:babel-register",
"cover": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha --compilers js:babel-register test/*.js"
Run Code Online (Sandbox Code Playgroud)

正如您可能会发现的那样,我尝试了不同的组合和替代方案,但似乎没有什么对我有用。

开发依赖项的相关部分:

    "babel-cli": "^6.16.0",
    "babel-core": "^6.26.0",
    "babel-loader": …
Run Code Online (Sandbox Code Playgroud)

javascript code-coverage node.js istanbul isparta

5
推荐指数
0
解决办法
1001
查看次数

如何从 rspec 集成测试中获得 nyc/istanbul JavaScript 覆盖率

我有一个带有 JavaScript(主要是 React)前端的Ruby on Rails 应用程序rspec功能测试套件练习了前端 JavaScript 代码的重要部分,但我对此没有任何可见性。同时,JavaScript 单元测试 - 运行方式jest- 提供 JavaScript 覆盖映射。

我想要rspec基于浏览器的集成测试的累积 JavaScript 覆盖率结果,但我没有找到任何示例。nyc,标准的 JS 覆盖库,应该能够实现这一点——可能与babel-plugin-istanbul.

javascript integration-testing rspec ruby-on-rails istanbul

5
推荐指数
1
解决办法
479
查看次数

在 Angular 单元测试代码覆盖率报告中包含 HTML 文件

我正在使用 Angular 6 和 karma 覆盖伊斯坦布尔记者来查看代码覆盖率。

它在代码覆盖率报告中仅显示 .ts 文件,这可能会产生误导,因为 HTML 模板也可以包含代码逻辑。

是否有将 HTML 代码包含到单元测试代码覆盖率中的方法?

jasmine istanbul karma-coverage angular

5
推荐指数
0
解决办法
248
查看次数

使用@vue/cli-plugin-unit-mocha、TypeScript 和 SFC 为 VueJS 项目生成纽约市覆盖率报告

我目前正在为使用 @vue/cli-plugin-unit-mocha 运行单元测试的 Vue 项目设置测试环境。该项目使用 TypeScript 和 .vue 单文件组件。我已经成功地设置了我的项目来运行单元测试并为 TypeScript 文件生成代码覆盖率报告,但是当我尝试为 SFC 添加测试时,我收到一个错误。

为了生成覆盖率报告,我使用 nyc + istanbul-instrumenter-loader。我认为我的配置对于常规 Typescript 文件是正确的,但是当它必须处理 .vue 文件时 istanbul-instrumenter-loader 会引发错误:

error  in ./src/pages/rapportages/components/reports-grid/reports-grid-container.vue?vue&type=script&lang=ts&
Module build failed (from ./node_modules/istanbul-instrumenter-loader/dist/cjs.js):
TypeError: Cannot read property 'fileCoverage' of undefined
Run Code Online (Sandbox Code Playgroud)

在我看来 .vue 文件没有被正确转换/转译。

这是我的 package.json:

{
 ...
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "test": "vue-cli-service test:unit src/**/__tests__/*.spec.ts --require mocha-setup.js",
    "test:ci": "yarn run test --reporter mocha-teamcity-reporter",
    "test:cover": "cross-env NODE_ENV=coverage nyc vue-cli-service test:unit src/**/__tests__/*.spec.ts --require mocha-setup.js"
  }
...
"nyc": …
Run Code Online (Sandbox Code Playgroud)

typescript istanbul mocha-webpack vuejs2 nyc

5
推荐指数
0
解决办法
2986
查看次数

赛普拉斯与伊斯坦布尔不生成代码覆盖率报告

我有 VueJS 应用程序和 Cypress 用于测试。我需要有代码覆盖率信息。

在 Cypress 中运行测试正在生成看似正确的 .nyc_output/out.json 文件,其中包含某些行执行的次数。

如何生成正确的报告?

问题是npx nyc report说一切都是 0% 在此处输入图片说明

tree .nyc_output/
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

来自 out.json 的示例,其中数字不为零 在此处输入图片说明

automated-tests jenkins istanbul vue.js cypress

5
推荐指数
1
解决办法
1448
查看次数

无法通过 Cypress + Istanbul 获得代码覆盖率

我尝试使用Cypressistanbul nycAngular 8项目中设置代码覆盖率。

我设法对代码进行了检测(__coverage__正确设置了全局变量):

在此处输入图片说明

以及.nyc_output运行后生成的覆盖文件cypress:open

在此处输入图片说明

但是生成的覆盖率报告是空的:

$ cat coverage/coverage-final.json
{}
Run Code Online (Sandbox Code Playgroud)

执行命令时结果相同:

$ npx nyc report --report-dir ./coverage --temp-dir .nyc_output --reporter=text
----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |        0 |        0 |        0 |        0 |                   |
----------|----------|----------|----------|----------|-------------------|
Run Code Online (Sandbox Code Playgroud)

这是我的 package.json devDependencies:

"devDependencies": {
  "@angular-devkit/build-angular": "^0.803.3",
  "@angular-devkit/build-optimizer": "^0.803.3",
  "@angular/cli": "^8.3.3",
  "@angular/compiler-cli": "8.2.5",
  "@angular/language-service": "8.2.5",
  "@briebug/cypress-schematic": …
Run Code Online (Sandbox Code Playgroud)

istanbul angular nyc cypress

5
推荐指数
1
解决办法
5714
查看次数

忽略打字稿装饰器的覆盖范围

我正在使用 Typescript 创建一些带有 Lit 元素的 Web 组件。使用 karma 捆绑和单元测试的 Webpack。

我注意到覆盖率报告已经全部出来了:

  • 在装饰器上显示未覆盖的分支和语句
  • 错误地报告了装饰器后面的行的覆盖率

我试过/* istanbul ignore next */在装饰器之前添加,但是 tsc 删除了它。

关于如何更新配置以防止装饰器被包含在覆盖率报告中的任何想法?

来源:

import {customElement, html, LitElement, property} from "lit-element";
import Style from "./style.less";

@customElement("webcom-voorbeeld")
export class WebcomVoorbeeld extends LitElement {

    @property({type: String, attribute: "attribute"})
    attribute = "default";

    @property({type: Number})
    property = 0;

    static get styles() {
        return [Style];
    }

    constructor() {
        super();
    }

    render() {
        return html
            `<div class="webcom webcom-voorbeeld">
                <p class="heading font-bold webcom-clr-blue-02">New Voor-Beeld component</p>
                <div class="slot …
Run Code Online (Sandbox Code Playgroud)

typescript istanbul karma-webpack

5
推荐指数
0
解决办法
467
查看次数