首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aurelia/Karma/伊斯坦布尔不能读取未定义的属性“skip”和“decl”,但会产生友好关系。

Aurelia/Karma/伊斯坦布尔不能读取未定义的属性“skip”和“decl”,但会产生友好关系。
EN

Stack Overflow用户
提问于 2019-10-25 08:11:50
回答 1查看 363关注 0票数 0

上周,我用Mocha,Sinon和Karma为我的Aurelia应用程序编写了很多测试。现在是为代码覆盖设置伊斯坦布尔的时候了。业力完成后,他的任务将在伊斯坦布尔产生覆盖,并在控制台和HTML关系文件中抛出一个错误。

代码语言:javascript
复制
25 10 2019 09:41:56.600:ERROR [coverage]: TypeError: Cannot read property 'skip' of undefined
    at C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\istanbul\lib\object-utils.js:110:43
    at Array.forEach (<anonymous>)
    at computeSimpleTotals (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\istanbul\lib\object-utils.js:108:28)
    at Object.summarizeFileCoverage (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\istanbul\lib\object-utils.js:215:25)
    at C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\istanbul\lib\report\html.js:558:58
    at Array.forEach (<anonymous>)
    at HtmlReport.writeReport (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\istanbul\lib\report\html.js:557:27)
    at writeReport (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\karma-coverage\lib\reporter.js:68:16)
    at C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\karma-coverage\lib\reporter.js:297:11
    at fs.stat (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\karma\lib\helper.js:148:7)
    at callback (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\*HIDDEN*\node_modules\graceful-fs\polyfills.js:295:20)
    at FSReqWrap.oncomplete (fs.js:153:5)
Karma has exited with 0

HTML页面

代码语言:javascript
复制
Cannot read property 'decl' of undefined
TypeError: Cannot read property 'decl' of undefined
    at Object.keys.forEach.fName (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-reports\lib\html\annotator.js:92:31)
    at Array.forEach ()
    at annotateFunctions (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-reports\lib\html\annotator.js:88:26)
    at Object.annotateSourceCode (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-reports\lib\html\annotator.js:238:9)
    at HtmlReport.onDetail (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-reports\lib\html\index.js:265:27)
    at Visitor.(anonymous function) [as onDetail] (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:34:30)
    at ReportNode.Node.visit (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:114:17)
    at getChildren.forEach.child (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:118:15)
    at Array.forEach ()
    at ReportNode.Node.visit (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:117:24)
    at getChildren.forEach.child (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:118:15)
    at Array.forEach ()
    at ReportNode.Node.visit (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:117:24)
    at Tree.visit (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-lib-report\lib\tree.js:150:20)
    at Object.keys.forEach.name (C:\Projecten\*HIDDEN*\dev\*HIDDEN*\node_modules\istanbul-api\lib\reporter.js:94:18)
    at Array.forEach ()

这是我的Karma配置:

代码语言:javascript
复制
const path = require('path');

module.exports = function (config) {
    config.set({
        basePath: path.dirname(__dirname),

        frameworks: ['mocha', 'chai', 'sinon', 'karma-typescript'],

        'plugins': [
            require('karma-mocha'),
            require('karma-sinon'),
            require('karma-chai'),
            require('karma-webpack'),
            require('karma-mocha-reporter'), 
            require('karma-chrome-launcher'),
            require('karma-junit-reporter'),
            require('karma-typescript'),
            require('karma-phantomjs-launcher'),
            require('karma-coverage'),
            require('karma-coverage-istanbul-reporter'),
            require('karma-remap-istanbul'),
            require('karma-istanbul-threshold')
        ],

        preprocessors: {
            'test/karma-bundle.js': ['webpack'],
            'ClientApp/**/*.ts': ['webpack', 'coverage']
        },
        webpack: require('../webpack.unit.config')({ env: 'production', prod: false }),

        reporters: ['junit', 'mocha', 'progress', 'coverage', 'coverage-istanbul'],

        coverageIstanbulReporter: {
            reports: ['html'],
            dir: path.resolve(__dirname, 'coverage-karma'),
            includeAllSources: false,
            fixWebpackSourcePaths: false,
            combineBrowserReports: false
        },

        webpackServer: { noInfo: true }, 
    });
}

我从配置文件中删除了不必要的代码。

我在Webpack配置中添加了以下规则:

代码语言:javascript
复制
...
{
    test: /\.(ts)/,
    options: {
        esModules: true,
        produceSourceMap: true,
        debug: true
    },
    include: path.resolve(srcDir),
    loader:'istanbul-instrumenter-loader'
},
....
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-06 07:50:02

所有的错误都解决了。关于“decl”的第一个错误来自于代码中的@inject。通过删除@inject,解决了问题。

重新安装我的node.js后,“TypeError:无法读取”未定义的“错误”的“跳过”属性消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58554650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档