У меня есть PHPUnit Test, который проверяет вывод файла журнала с регулярным выражением. Файл_журнала выглядит следующим образом (первая строка пуста, но я не знаю, как показать, что здесь):phpunit assertRegExp() тест проходит в unix, сбой в Windows
<empty line>
lfworker01:
-----------------------------------------------------------
Last update: 2012-06-14 11:43:17
Last Segment Sent: 2009-12-02 23:25:00 (1259792700)
Current Segement: 2009-12-03 00:25:00 (1259796300)
Clicks processed Segment: 3
Open sessions Segment: 1
Duration Segment: 0,06 sec
Speed Segment: 47,67 clicks/sec
Uptime: 0 days 00:00:00
Clicks processed overall: 3
Avg Speed overall: 81,70 clicks/sec
Current memory used: 16,75 MB
Max memory used: 16,75 MB
Я проверка содержания с регулярным выражением:
$strExpectedMeasurementLog = "#
lfworker01:
-----------------------------------------------------------
Last update: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
Last Segment Sent: 2009-12-02 23:25:00 \(1259792700\)
Current Segement: 2009-12-03 00:25:00 \(1259796300\)
Clicks processed Segment: 3
Open sessions Segment: 1
Duration Segment: \d*,\d{2} sec
Speed Segment: \d*,\d{2} clicks/sec
Uptime: 0 days 00:00:00
Clicks processed overall: 3
Avg Speed overall: \d*,\d{2} clicks/sec
Current memory used: \d*,\d{2} MB
Max memory used: \d*,\d{2} MB#";
$strActualMeasurementLog = file_get_contents(dirname(__FILE__)."/applogs/measurement.log");
self::assertRegExp($strExpectedMeasurementLog, $strActualMeasurementLog);
тест PHPUnit был создан в среде unix. Этот тест проходит в тестовой среде unix, но не работает в среде тестирования Windows. Я заменил разрывы окна линии с перерывами UniX линии по appyling эту функцию в measurement.log файла:
public function unixtodos($strPathFile)
{
$strCurrent = file_get_contents($strPathFile);
$strPattern = "|\r\n|";
$strReplace = "\n";
$strNew = preg_replace($strPattern, $strReplace, $strCurrent);
file_put_contents($strPathFile, $strNew);
}
Он по-прежнему не соответствует, и я из идей :(
Если мой ответ ниже не работает, это может быть ошибка где-нибудь, пожалуйста, отправлять версии PHP и PHPUnit, что вы используете на каждом из UNIX и окон среды. Также получите текстовый редактор (например, scite для этого), где вы можете видеть байты LF и CR, а также просматривать как ваши отчеты на каждой машине, так и исходный файл phpunit на каждой машине. –
Не совсем, но вы указали мне в правильном направлении, чтобы посмотреть байты LF и CR и посмотреть исходный файл phpunit. Спасибо Даррену! – mles