【发布时间】: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