Karma Uncaught RangeError:超出最大调用堆栈大小

时间:2017-12-04 23:02:58

标签: testing gruntjs karma-runner

尝试运行# Helper class to convert a DynamoDB item to JSON. class DecimalEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, decimal.Decimal): if o % 1 > 0: return float(o) else: return int(o) return super(DecimalEncoder, self).default(o) dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000") table = dynamodb.Table('Movies') title = "The Big New Movie" year = 2015 response = table.put_item( Item={ 'year': year, 'title': title, 'info': { 'plot':"Nothing happens at all.", 'rating': decimal.Decimal(0) } } ) 时,我从Karma收到此错误:

grunt karma:debug

可能是什么原因?在提交一些大的JSON文件后,它开始在一夜之间发生。如果我在没有JSON文件的情况下返回提交,该命令将再次开始工作。

2 个答案:

答案 0 :(得分:0)

我在11 11 2017 00:00:00.000:INFO [Chrome 62.0.3202 (Linux 0.0.0)]: Connected on socket /#AAAA-AAAAAAAAAAAAAAA with id 99999999 Chrome 61.0.0000 (Linux 0.0.0) ERROR Uncaught RangeError: Maximum call stack size exceeded at http://localhost:9876/context.html Chrome 61.0.0000 (Linux 0.0.0) ERROR Uncaught RangeError: Maximum call stack size exceeded at http://localhost:9876/context.html Chrome 61.0.0000 (Linux 0.0.0): Executed 0 of 0 ERROR (1.035 secs / 0 secs) 文件中发现了问题:

karma.conf.js

该行使得Karma在HTML页面中包含了JSON文件,并且似乎在我添加的JSON文件数量方面存在问题。解决方案是告诉Karma不要在HTML中包含这些文件,而是将它们作为WebServer提供:

config.set({
    ...
    files: [
        ...
        { pattern: "path/to/fixtures/**/*.json" },
        ...
    ]

相关文档为here

config.set({
    ...
    files: [
        ...
        { pattern: "path/to/fixtures/**/*.json", included: false },
        ...
    ]

答案 1 :(得分:0)

确保仅分配一次组件变量,最好仅在 beforeEach 前。

component = Fixture.componentInstance -不应在每个描述中给出。