Я сравниваю два содержимого файла, если они имеют одинаковое содержимое, один файл в формате dos, а другой в формате unix, поэтому я запускаю команду dos2unix, чтобы получить оба в одном формате. В коде происходит что-то асинхронное, что иногда приводит к сбою теста (когда я удаляю содержимое для повторного запуска файла).
Примечание: Я выполняю свой код в машине Windows
Что я пробовал
require('fs').writeFileSync('test.txt', somedata.replace(/\n/g, '\r\n'), {encoding: 'utf8'});
Это не сработало для меня. Я использую пакет сравнения файлов npm для сравнения файлов
test.js
const expect = require('chai').expect;
const { spawn } = require('child_process')
let path = require('path');
let fs = require('fs');
var fc = require('filecompare');
describe('something', function() {
beforeEach(function(done) {
let options = ['-h'];
const cmd = spawn('ipconfig',[all], {shell: true, stdio: 'inherit'});
let filepath2 = path.resolve(__dirname,'../../../../LicensingOps/ansysfnonetclient/tests/help.log');
let filepath1 = path.resolve(__dirname,'../../../../../../../../../testfile/help.log');
cmd.stdout.on('data',function(chunk) {
fs.writeFile(filepath1, chunk.toString(), function(err) {
if(err) {
return console.log(err);
}
let filepath1 = path.resolve(__dirname,'../../../../../../../../../testfile/help.log');
const cmd1 = spawn('dos2unix',[filepath1], {shell: true, stdio: 'inherit'});
})
})
done();
})
afterEach(function(done) {
let filepath2 = path.resolve(__dirname,'../../../../LicensingOps/ansysfnonetclient/tests/help.log');
let filepath1 = path.resolve(__dirname,'../../../../../../../../../testfile/help.log');
var cb = function(isEqual) {
console.log("equal? :" + isEqual);
expect(isEqual).to.be.eql(true);
done();
}
fc(filepath2,filepath1,cb);
})
it('something',function(done) {
this.timeout(3000000);
//do nothing
done();
})
Как вы видите, я запускаю команду ipconfig -all, я пишу эту команду o /p в файл (это в формате dos), и я уже храню o / p в файле, но этот файл в стиле Unix. Поэтому, когда я сопоставляю эти два файла с помощью пакета сравнения файлов npm, я получаю результат, что эти два файла не равны, хотя их содержимое одинаково.