У меня странная проблема со следующим скриптом теста perl на Mac с установленными mysql и apache:
# stop all servers
`mysql.server stop 2>&1`;
`apachectl -k graceful-stop 2>&1`;
is apache_is_running(), 0, 'determines if apache is not running';
`apachectl -k start 2>&1`;
is apache_is_running(), 1, 'determines apache is running';
is mysql_is_running(), 0, 'determines mysql is not running';
system "mysql.server start 2>&1";
is mysql_is_running(), 1, 'determines mysql is running';
print "hi\n";
exit;
Когда я запускаю тест с prove -l --verbose
, я получаю следующий вывод:
1..4
# Running my tests
ok 1 - determines if apache is not running
ok 2 - determines apache is running
ok 3 - determines mysql is not running
Starting MySQL
. SUCCESS!
ok 4 - determines mysql is running
hi
Тогда тест просто зависает и никогда не завершается полностью.Это что-то в последней команде, которая вызывает это: system "mysql.server start 2>&1";
Я пробовал с обратными галочками вместо system
, но это не помогло.Если я удалю эту последнюю команду, она будет работать нормально, как и ожидалось.