【问题标题】:nodejs how to test big output textnodejs如何测试大输出文本
【发布时间】:2026-01-27 04:20:07
【问题描述】:

我有项目编译js到js。

我写了filename.js并编译成filename.out.js,并手动检查filename.out.js,下次我修改我的编译器时,希望输出不要改变,如果改变了显示差异。

function testFile(filename){
  var code = fs.readFileSync(filename + '.js', 'utf-8');
  var expect = fs.readFileSync(filename + '.out.js', 'utf-8');
  assert.equal(pro.compile(code), expect);
}

['groups', 'steps', 'serial', 'parallel'].forEach(testFile);

每次都说AssertionError,但不应该,而且不能给出diffrent。

【问题讨论】:

  • 你知道它们是一样的吗?空白可能有区别吗?如果您转储一些道具,例如:console.log(pro.compile(code).length);和 console.log(expect.length);它们是一样的吗?
  • 谢谢你的日志长度,救了我的命。大一号,奇怪。 trim() 那么它们是相同的。
  • 文件末尾可能有一个空格。或者文件是用 BOM 编码的。

标签: node.js unit-testing debugging delta file-comparison


【解决方案1】:

谢谢你的日志长度,救我一命。大一号,奇怪。 trim() 那么它们是相同的

【讨论】: