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
相关产品推荐
相关产品推荐

