Автоматический запуск тестов PHPUnit с Arcanist (Phabricator)

"Простой" вопрос: как я могу автоматически запускать тесты PHPunit с Arcanist?

Согласно документации, я должен сначала загрузить пользовательскую библиотеку. Как указано здесь, я должен создать .arcconfig файл и загрузить соответствующую библиотеку.

Итак: я создал dir "arc_libs" в моем проекте и в dir "src" я использовал arc liberate генерировать необходимые файлы. Мой конфиг сейчас:

{
  "project.name" : "arc_libs",
  "phabricator.uri" : "https://phabricator.xxx.xxx.net/",
  "unit.engine" : "PhpunitTestEngine",
  "load" : ["arc_libs/src"]
}

Библиотека загружается, потому что я могу запустить arc unit

[matthijs@xx xxx]$ arc unit
No tests to run.

Но, как вы видите, тестов для запуска нет. Мы храним наши тесты в "project_root/tests" и, насколько я понимаю в документации, я должен создать каталог __tests__ в "модуле" (возможно, мой каталог arc_libs?)

Однако я хочу запустить мои существующие тестовые файлы PHPunit, а не новые тесты, которые мне нужно создать. Я пытался использовать символическую ссылку и т. Д., Но я не могу заставить ее работать. Arcanist не обнаруживает мои тесты.

Итак, мой вопрос: как я могу автоматически запускать мои СУЩЕСТВУЮЩИЕ тесты PHPunit с помощью arcanist?

(обратите внимание, мы используем arc diff это должно бежать arc unit автоматически)

2 ответа

$ arc unit --help

  unit [options] [paths]
  unit [options] --rev [rev]
      Supports: git, svn, hg
      Run unit tests that cover specified paths. If no paths are specified,
      unit tests covering all modified files will be run.

По умолчанию arc lint и arc unit предназначены для использования как часть процесса внесения изменений, поэтому по умолчанию он действует только для измененных файлов. Скорее всего, у вас нет никаких измененных файлов. Вы, вероятно, хотите указать несколько путей или запустить arc unit --everything запустить все тесты.

Связанная с вами документация не будет очень полезной - она ​​предназначена для разработчиков Phabricator, которые хотят протестировать свои библиотеки. Существует некоторая пользовательская документация для настройки задач модульного тестирования, но она не очень хороша. К счастью, Arcanist довольно легко запустить модульные тесты вашего проекта, используя PhpunitTestEngine:

  1. Подготовить phpunit.xml файл в корне вашего проекта. Это должен быть стандартный файл конфигурации PHPUnit. Вы можете проверить это, запустив phpunit -c phpunit.xml,
  2. Добавить phpunit_config вариант вашего .arcconfig:

    {
      "phabricator.uri": "https://phabricator.xxx.xxx.net/",
      "unit.engine": "PhpunitTestEngine",
      "phpunit_config": "phpunit.xml"
    }
    
  3. Бежать arc unit чтобы проверить это.

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

Другие вопросы по тегам