javascript - 使用VSCode进行单元测试时,发生Assertion failed错误

 狗子汪_322 发布于 2022-11-13 07:20

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查询

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有