Команда в тесте приводит к тому, что тест не завершается полностью - PullRequest
1 голос
/ 11 марта 2019

У меня странная проблема со следующим скриптом теста 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, но это не помогло.Если я удалю эту последнюю команду, она будет работать нормально, как и ожидалось.

1 Ответ

0 голосов
/ 12 марта 2019

ОК, это то, что исправило, но я до сих пор не понимаю, почему:

`mysql.server start >/dev/null 2>&1`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...