Какие проверки статических тестов?

8

После сборки моего модуля я попытался запустить bin/magento dev:tests:run static.
Это сообщило о нескольких проблемах с моим кодом, но я не уверен, что именно проверяется при выполнении этого теста.
Официальная документация гласит

Статический анализ кода проверяет, что код PHP соответствует стандартам и лучшим практикам кодирования Magento 2. Они обычно выполняются во время непрерывной интеграции с использованием инструмента bin / magento.

Но это не много значит.
Что я нашел до сих пор

  • присутствие composer.json
  • присутствие README.md
  • присутствие licence.txt
  • порядок аргументов конструктора соответствует родительскому порядку аргументов.

Что еще?

Мариус
источник
@AnkitShah Можете ли вы указать мне точный абзац на странице, на которую вы ссылались, где говорится, что делают статические тесты?
Мариус

Ответы:

6

bin/magento dev:tests:run static будет работать:

  • Анализ меньше статического кода: Generic.Files.EndFileNewline, Generic.Files.LineEndings, Generic.WhiteSpace.DisallowTabIndent, Squiz.CSS.NamedColours
  • Статический анализ кода Javascript: eslint, jshint
  • Стандартная кодировка PHP:
    1. Возвращает белый список на основе черного списка и измененных файлов git
    2. Запустите анализатор кода PSR2 для кода
    3. Запустите для кода Magento специальные стандарты кодирования
    4. Запустите аннотации сниффы по коду
    5. Запустите детектор беспорядка на коде
    6. Запустите копирование вставить детектор на код
  • Тесты целостности кода:
    1. Построить зависимости модулей
    2. Тест, применяющий composer.lock, обновлен до composer.json
    3. Тест, обеспечивающий достоверность файлов composer.json и любых других соглашений в компонентах Magento
    4. Hhvm тест на совместимость
  • Небезопасный выходной тест Xss:
    1. / * @noEscape * / перед выводом. Выход не требует выхода. Тест зеленый.
    2. / * @escapeNotVerified * / перед выводом. Выходной выход не проверяется и * должен быть проверен. Тест зеленый.
    3. Методы, содержащие в своих именах html (например, echo $ object -> {суффикс} Html {postfix} ()). * Данные готовы к выводу HTML. Тест зеленый.
    4. Разрешены методы AbstractBlock escapeHtml, escapeUrl, escapeQuote, escapeXssInUrl. Тест зеленый.
    5. Допускается приведение типов и функция php count () * (например, echo (int) $ var, echo (float) $ var, echo (bool) $ var, счетчик echo ($ var)). Тест зеленый.
    6. Выводится в одинарных кавычках (например, echo 'some text'). Тест зеленый.
    7. Вывод в двойных кавычках без переменных (например, echo "некоторый текст"). Тест зеленый.
    8. Другое из ч.1-7. Выход не сбежал. Тест красный.

Источник: dev / tests / static / phpunit.xml.dist

Джонатан Рибас
источник
Можете ли вы добавить несколько слов о каждом из них, пожалуйста? Может быть, пример, который не проходит определенный тест?
Мариус
@Marus Я только что добавил несколько слов для каждого (я взял их все из ядра), надеюсь, это поможет.
Джонатан Рибас