Jump to main content Jump to doc navigation

MODX поставляется с набором модульных тестов (при установке из Git), которые проверяют, работает ли код как надо. Они запускаются автоматически при каждом нажатии на modxcms/revolution, включая запросы на получение.

Тесты написаны для запуска PHPUnit 6.

Чтобы запустить тесты локально, вам необходимо сначала их настроить.

Подготовка конфигурации

Скопируйте файл _build/test/properties.sample.inc.php в _build/test/properties.inc.php и откройте его в редакторе.

В строке 23, измените $properties['config_key'] используйте ваш фактический конфигурационный ключ MODX. Это можно найти в вашем config.core.php в корне.

В строке 23, измените $properties['mysql_string_dsn_test'] чтобы соответствовать вашей фактической детализации соединения с базой данных. Найди это в своем файле core/config./config.inc.php. (Примечание: оставьте два других определения mysql_string_dsn_ в покое)

В строках 30 и 31 введите учетные данные вашей базы данных в $properties['mysql_string_username'] и $properties['mysql_string_password']

Запуск тестов

Для запуска тестов из корня проекта выполните следующую команду:

composer run phpunit

Чтобы ограничить тесты определенным подмножеством тестов (что значительно ускорит его), добавьте правильный путь к команде. Например, чтобы запустить только тесты, связанные с моделью:

composer run phpunit _build/test/Tests/Model

Когда писать тесты

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

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

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • Fabian Christen
  • Dannevang Digital
  • Sepia River Studios
  • CrewMark
  • Chris Fickling
  • deJaya
  • Lefthandmedia
  • Murray Wood
  • eydolan
  • Following Sea
  • Anton Tarasov
  • Stéphane Jäggi
  • Raffy
  • Snow Creative
  • A. Moreno
  • Nick Clark
  • JT Skaggs
  • Helen
  • YJ
  • krisznet
  • Richard
  • Yanni

Budget

$301 per month—let's make that $500!

Learn more