javascript - 使用VSCode进行单元测试时,发生Assertion failed错误
PHP中文网
PHP中文网 2017-04-11 10:39:32
[JavaScript讨论组]

1.问题

当我试图在vscode中使用mocha-debug进行调试的时候,就会发现一段时间在命令行中就会报错,报错信息如下

Assertion failed: (object->InternalFieldCount() > 0), function Unwrap, file ../node_modules/nan/nan_object_wrap.h, line 33.

2.相关代码

  • 测试文件

'use strict';
const { rootPath, testConfig, testLogger, wait } = _testHelper;
const Canvas = require('canvas');
const co = require('co');
const should = require('should');
const picFunc = require(`${rootPath}/utils/text2pic`);
const Image = Canvas.Image;


describe('小黄图生成图片测试', () => {

  it('测试生成图片方法', () => {
    return co(function*(){
      let testLogger = {
        info: console.log.bind(null)
      };
      let mPic = picFunc(testLogger, testConfig);

      let novelList = require('./data.json').novels;
      let novel = novelList[1];
      novel.qrcodeUrl = `${rootPath}/img-dirs/yellow-pic/qrcodes/1.png`;
      // let qrcodeImg = new Image(`${rootPath}/img-dirs/img-tpls/common/0 二胎政策创始人.jpg`);
      let qrcodeImg = new Image(novel.qrcodeUrl);
      novel.username = '谷阿莫';
      let path = yield mPic.toPic(novel);
      console.log(path);
    });
  });
  • mocha命令

 "mocha-debug": "NODE_ENV=test mocha tests/utils/text2pic/test.js -r ./tests/helper.js -R spec --debug-brk",

3.重现过程:

  • 随意打若干断点

  • 使用npm run mocha-debug命令后,在vscode中启动单元测试执行

  • 报错信息出现,查了一下核心模块nan_object_wrap.h代码如下:


  template 
  static inline T* Unwrap(v8::Local object) {
    assert(!object.IsEmpty());
    assert(object->InternalFieldCount() > 0);
    // Cast to ObjectWrap before casting to T.  A direct cast from void
    // to T won't work right when T has more than one base class.
    void* ptr = GetInternalFieldPointer(object, 0);
    ObjectWrap* wrap = static_cast(ptr);
    return static_cast(wrap);
  }

4.已经尝试的解决方案

  • 更换图片地址

  • 将有关picFunc图片处理函数的代码段全部注释掉

  • Google查询

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号