Warning: mkdir(): No space left on device in /var/www/tgoop/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/phpshka/--): Failed to open stream: No such file or directory in /var/www/tgoop/post.php on line 50
PHP Academy@phpshka P.476
PHPSHKA Telegram 476
Неиспользуемые определения в статическом анализе Behat

Разработчик поделился опытом оптимизации работы с тестами Behat. Он заметил, что некоторые определения, используемые в сценариях тестирования, больше не применяются и могут быть удалены. Это позволяет уменьшить объем кода, который нужно поддерживать и обновлять. Однако стандартные инструменты Behat не позволяют автоматически находить такие неиспользуемые элементы.

Проблема

Определения для тестов в Behat задаются специальными аннотациями или атрибутами. Эти определения используются в сценариях тестирования, записанных в feature-файлах. Со временем, по мере изменения сценариев, некоторые определения могут остаться невостребованными, но разработчики часто не замечают этого из-за высокой нагрузки и сосредоточенности на основной работе.

Решение через статический анализ
Для выявления неиспользуемых определений был предложен инструмент статического анализа. Он выполняет следующие шаги:

🔸Сканирует PHP-файлы на наличие определений (аннотации и атрибуты).
🔸Выделяет точные совпадения, регулярные выражения и именованные маски.
🔸Сопоставляет их с содержимым feature-файлов.

Пример анализа:

🔹Найдено 1036 определений: 747 точных, 106 с регулярными выражениями, 181 с именованными масками.
🔹Обнаружены 2 неиспользуемых определения, которые можно удалить.

Инструмент для работы: Behastan
Для реализации этого подхода был создан инструмент Behastan, интегрированный в утилиту Rector Swiss Knife. Она поддерживает проекты вплоть до PHP 7.2 и проста в использовании:

1. Установите утилиту:
composer require rector/swiss-knife --dev


2. Запустите анализ:
vendor/bin/swiss-knife behastan tests


Этот инструмент помогает поддерживать чистоту кода и предотвращает накопление ненужных определений. Подключив его к CI/CD, можно автоматизировать процесс и избежать ручных проверок.



tgoop.com/phpshka/476
Create:
Last Update:

Неиспользуемые определения в статическом анализе Behat

Разработчик поделился опытом оптимизации работы с тестами Behat. Он заметил, что некоторые определения, используемые в сценариях тестирования, больше не применяются и могут быть удалены. Это позволяет уменьшить объем кода, который нужно поддерживать и обновлять. Однако стандартные инструменты Behat не позволяют автоматически находить такие неиспользуемые элементы.

Проблема

Определения для тестов в Behat задаются специальными аннотациями или атрибутами. Эти определения используются в сценариях тестирования, записанных в feature-файлах. Со временем, по мере изменения сценариев, некоторые определения могут остаться невостребованными, но разработчики часто не замечают этого из-за высокой нагрузки и сосредоточенности на основной работе.

Решение через статический анализ
Для выявления неиспользуемых определений был предложен инструмент статического анализа. Он выполняет следующие шаги:

🔸Сканирует PHP-файлы на наличие определений (аннотации и атрибуты).
🔸Выделяет точные совпадения, регулярные выражения и именованные маски.
🔸Сопоставляет их с содержимым feature-файлов.

Пример анализа:

🔹Найдено 1036 определений: 747 точных, 106 с регулярными выражениями, 181 с именованными масками.
🔹Обнаружены 2 неиспользуемых определения, которые можно удалить.

Инструмент для работы: Behastan
Для реализации этого подхода был создан инструмент Behastan, интегрированный в утилиту Rector Swiss Knife. Она поддерживает проекты вплоть до PHP 7.2 и проста в использовании:

1. Установите утилиту:

composer require rector/swiss-knife --dev


2. Запустите анализ:
vendor/bin/swiss-knife behastan tests


Этот инструмент помогает поддерживать чистоту кода и предотвращает накопление ненужных определений. Подключив его к CI/CD, можно автоматизировать процесс и избежать ручных проверок.

BY PHP Academy


Share with your friend now:
tgoop.com/phpshka/476

View MORE
Open in Telegram


Telegram News

Date: |

Ng was convicted in April for conspiracy to incite a riot, public nuisance, arson, criminal damage, manufacturing of explosives, administering poison and wounding with intent to do grievous bodily harm between October 2019 and June 2020. Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019. 5Telegram Channel avatar size/dimensions Content is editable within two days of publishing In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist.
from us


Telegram PHP Academy
FROM American