Разработка, HowTo

PHPStorm: Запускаем тесты на удаленной машине с возможностью отладки

2018-07-11-21:10:29_373x236Не секрет, что современные среды разработки полны полезного функционала, освоение которого позволяет поднять продуктивность разработки до невероятных высот.

Сегодня мы реализуем возможность запуска тестов на проекте в каком-либо контейнере (докер, вагрант, удаленное железо), просмотре их выполнения и возможности анализа результатов. И все это не переключаясь на отдельную консоль.

Почему это удобно? Я уже неоднократно ссылался на удобство контейнеров поскольку они обеспечивают повторяемость окружения, скорость развертывания рабочего проекта и схожесть окружений у всех разработчиков в команде.

Долгое время неудобством выступало то, что для тестирования и непосредственной отладки требовалось выполнить переключение на консоль тестовой машины.

Дано:

  • окружение под vagrant (один из способов собрать такое окружение описан в соответствующей статье).

Надо:

  • запускать и отлаживать тесты не выходя из ide

Читать далее

linux

Bash: Передача аргументов в кавычках

Мне потребовалось создать скрипт, который передает свои аргуенты на вход другого скрипта без изменения. Просто добавляет к ним несколько своих параметров.

#!/usr/bin/env bash
some_tools $@

На этом этапе меня подстерегал сюрприз. Если в строке аргументов были кавычки, то интерпретатор просто отбрасывал их.
Выяснилось, что для передачи строкового литерала без изменений надо обернуть его в двойные кавычки.

#!/usr/bin/env bash
some_tools "$@"
HowTo, linux

Bash: подстановка процесса

2018-07-03-22:14:15_267x133Рассмотрим достаточно полезную штуку в консоли линукса (bash) как подстановка процесса.

Вообще подстановок в баше достаточно много всяких подстановок: результата выполнения команды  арифметических операций, имен файлов, значений переменных и, конечно же, процессов.

Применима подстановка в первую очередь для того, чтобы избавиться от создания пайпов.А во вторую — для сохранения внешнего контекста при работе подпроцесса.

Избавляемся от пайпов

Имеем две команды, которые формируют некоторый список значений и мы хотим сделать diff или любую другую операцию, которая принимает на вход в качестве аргументов имена файлов.

Читать далее