You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mocha+Mochawesome环境下箭头函数中addContext内容不显示的解决方法

解决方案

核心问题是箭头函数的this不指向Mocha的测试(it)上下文,导致addContext无法关联到正确的测试实例。以下是适配你现有约束的解决步骤:

  • 步骤1:在测试用例中传递测试上下文
    虽然it用了箭头函数,但外层describe是普通函数,箭头函数会继承describe的上下文,而该上下文的currentTest属性就是当前it的测试实例。调用sendMessages时把它传进去:

    describe('Response Flow network transaction and Validation', function () {
      it('Step 1', async () => {
            responseMessage = await class.sendMessages(objectMessage, this.currentTest)
      })
    })
    
  • 步骤2:在sendMessages中使用传入的上下文调用addContext
    修改sendMessages函数,接收传入的测试上下文参数,并用它替代原来的this:

    var addContext = require('mochawesome/addContext.js');
    
    async function sendMessages(objectMessage, testContext) {
      // 你的原有业务逻辑...
      // 调用addContext时传入测试上下文
      addContext(testContext, { 
        title: 'This is my context title', 
        value: JSON.stringify(objectMessage, null, 2) // 转成格式化字符串,确保报告显示完整结构
      });
      return responseMessage;
    }
    
  • 额外优化
    如果objectMessage是复杂对象,直接传入可能导致报告显示异常,用JSON.stringify格式化后可读性更好;如果是简单类型,可直接传入。

内容的提问来源于stack exchange,提问作者BlueReddington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:00:03