0

我正在尝试使用 karma、jasmine、webpack 搭建 angular2 脚手架,方法是关注网上的各种资源,以获得更深入的了解。

我正在使用istanbul-instrumenter-loader进行业力覆盖率报告。

当我运行时,npm test我得到以下输出:

ksharifbd:provat Admin$ npm test

> provat@0.0.1 test /Users/Admin/Downloads/kamal/development/self/provat
> karma start ./testconfig/karma/karma.conf.js --browsers Chrome

root directory: /Users/Admin/Downloads/kamal/development/self/provat
source directory: /Users/Admin/Downloads/kamal/development/self/provat/src

webpack: bundle is now VALID.
webpack: bundle is now INVALID.
ts-loader: Using typescript@2.0.3 and /Users/Admin/Downloads/kamal/development/self/provat/tsconfig.json
22 10 2016 18:48:15.719:WARN [karma]: No captured browser, open http://localhost:9876/

webpack: bundle is now VALID.
22 10 2016 18:48:15.741:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
22 10 2016 18:48:15.742:INFO [launcher]: Launching browser Chrome with unlimited concurrency
22 10 2016 18:48:15.859:INFO [launcher]: Starting browser Chrome
22 10 2016 18:48:17.420:INFO [Chrome 54.0.2840 (Mac OS X 10.10.4)]: Connected on socket /#m-tmeGM-JMz_OSU4AAAA with id 80103692
Chrome 54.0.2840 (Mac OS X 10.10.4): Executed 1 of 1 SUCCESS (0.129 secs / 0.104 secs)
Error: Could not find source map for: "/Users/Admin/Downloads/kamal/development/self/provat/src/modules/greetings/component/greetings.component.ts"
at /Users/Admin/Downloads/kamal/development/self/provat/node_modules/remap-istanbul/lib/remap.js:257:11
at Array.forEach (native)
at /Users/Admin/Downloads/kamal/development/self/provat/node_modules/remap-istanbul/lib/remap.js:214:22
at Array.forEach (native)
at remap (/Users/Admin/Downloads/kamal/development/self/provat/node_modules/remap-istanbul/lib/remap.js:213:12)
at RemapCoverageReporter.onCoverageComplete (/Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma-remap-coverage/remap-coverage.js:23:23)
at Server.<anonymous> (/Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma/lib/events.js:13:22)
at emitTwo (events.js:106:13)
at Server.emit (events.js:191:7)
at InMemoryReport.writeReport (/Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma-coverage/lib/in-memory-report.js:14:22)
at writeReport (/Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma-coverage/lib/reporter.js:68:16)
at /Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma-coverage/lib/reporter.js:290:11
at Array.forEach (native)
at Collection.forEach (/Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma/lib/browser_collection.js:93:21)
at /Users/Admin/Downloads/kamal/development/self/provat/node_modules/karma-coverage/lib/reporter.js:247:16
at Array.forEach (native)

=============================== Coverage  summary===============================
Statements   : 82.35% ( 14/17 )
Branches     : 48.28% ( 14/29 )
Functions    : 100% ( 4/4 )
Lines        : 91.67% ( 11/12 )
================================================================================

我没有发布来自多个文件的输出,而是使用 README 将所有代码放在 Github 中

您的帮助将不胜感激。

4

2 回答 2

4

我遇到了同样的问题,“istanbul-instruenter-loader”存在问题,降级到版本“^0.2.0”可以工作。

更改你的 package.json 并重新安装包

npm un  istanbul-instrumenter-loader --save-dev

npm i istanbul-instrumenter-loader@^0.2.0 --save-dev

这是其中一个文件的覆盖范围

在此处输入图像描述

于 2016-10-24T04:24:34.247 回答
0

我不确定降级istanbul-instrumenter-loader是否有效。但是将其降级到最低并不是一个好的做法,而且总是适合。这里的问题是测试加载找不到特定文件的源映射。并且在测试阶段没有必要。所以我们可以通过添加"sourceMap": falseangular.json文件中的测试配置来修复,如下所示。

    "test": {
      "builder": "ngx-build-plus:karma",
      "options": {
        "main": "src/test.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "tsconfig.spec.json",
        "karmaConfig": "karma.conf.js",
        "sourceMap": false,  // <---
        "styles": [
          "src/styles.scss"
        ],
        "scripts": [],
        "assets": [
          "src/favicon.ico",
          "src/assets"
        ]
      }
    },
于 2021-11-08T06:27:21.310 回答