**Нарушено правило:** Программы пишутся для пользователей и программистов, а не для компьютера, все должно быть понятно для человека.
**Задача:** В тесте создания vm проверить, что нужные параметры в конфиге выставлены верно.
**Ошибка:** Сделал проверку с помощью кода:
cloudfox vm create ...
grep -q "^IP=192.168.1.1" ${VM_CONF}
grep -q "^NAME=test_vm" ${VM_CONF}
Здесь неявно используется функционал set -e (Exit immediately if a pipeline returns a non-zero status), который мы используем для контроля за ошибками выполнения команд внутри скриптов (если в конфиге опции нет, то grep упадет, тест тоже).
**Как надо делать:**
Так как проверка опций в конфиге - это основная бизнес-логика теста, мы должны описать это явно на языке bash (желательно с понятным логом):
cloudfox vm create ...
if ! grep -q "^IP=192.168.1.1" ${VM_CONF}; then
echo "В конфиге vm неверно указан сгенерировался IP">&2
exit 1
fi
if grep -q "^NAME=test_vm" ${VM_CONF}; then
echo "В конфиге vm неверно указан сгенерировался NAME">&2
exit 1
fi
~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/
{(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики|type=vote|trace=user|tracedetails=1)}