2016-09-20 2 views
6

У меня есть последние PhpStorm (2016.2) и PHPUnit phar (5.5.4). По какой-то причине, когда я запускаю тест PHPUnit в моем проекте в PhpStorm, он добавляет на --teamcity к команде запуска, в результате сбоя:Запуск теста PHPUnit в PhpStorm добавляет параметр «--teamcity», вызывающий ошибку

Testing started at 12:52 PM ... 
Unit test suite invoked with a path to a non-unit test: --teamcity 
Process finished with exit code 1 

Я понятия не имею, где это --teamcity вариант приходит, его происходит независимо от того, какой тест я запускаю, и даже при запуске из пустой конфигурации. У меня также нет плагина TeamCity, я даже не использую TeamCity.

Вот что появится полная команда как:

/usr/local/Cellar/php70/7.0.9/bin/php /Users/name/bin/phpunit-5.5.4.phar --configuration /path/to/config/my-phpunit.xml ClassNameTest /Users/name/PhpstormProjects/path/to/tests/unit/app/ClassNameTest.php --teamcity 

(секретная информация выгружена)

Все, что я хочу сделать, это избавиться от этого --teamcity варианта, все работает, если я запускаю в отдельном без этого параметра. Это только недавно началось, возможно, после обновления PhpStorm.

+1

Я считаю, что '--teamcity' здесь это имя принтера результатов (или как там это правильно называется), так что IDE может контролировать и отслеживать выполнение тестов в режиме реального времени (обновление GUI с результатами и текущим прогрессом). Такой принтер просто печатает информацию об исполнении теста в формате, который IDE понимает, вот и все. Этот параметр не повредит моему выполнению теста PHPUnit (PhpStorm 2016.2.1; PHPUnit 5.5.4 и 5.0.8; PHP 5.6.25 и 7.0.10; Windows 7). – LazyOne

+0

Это полная команда: 'E: \ Projects \ php70 \ php.exe E: \ Projects \ web \ _libs \ lib3 \ vendor \ phpunit-5.5.4.phar --configuration E: \ Projects \ web \ _libs \ lib3 \ tests \ phpunit-ide.xml Core \ Tests \ Helpers \ InputTest E: \ Projects \ web \ _libs \ lib3 \ tests \ Core \ Helpers \ InputTest.php --teamcity' – LazyOne

+0

@LazyOne интересно. Даже когда я переключаюсь на консоль, я получаю ту же ошибку. Пробовал как в «рыбах», так и в «баш». Когда я перемещаю параметр '--teamcity' до' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' ' Что может заставить скрипт распознавать '--teamcity' как единичный тест, а не аргумент параметра? –

ответ

0

Проблема была внутренней для проекта. PHPUnit не содержит этого сообщения об ошибке. Сожалею!

+0

Если ваш проект не является супер-частным - подумайте о том, чтобы предоставить воспроизводимый образец проекта для Tracker JetBrains's Issue Tracker по адресу https://youtrack.jetbrains.com/issues/WI (вложения могут быть доступны только для членов JB) - возможно, они могут предложить некоторое обходное решение .. или, возможно, они предоставят какой-то вариант в будущем, который поместит такой параметр '--teamcity' раньше (перед другими параметрами) – LazyOne

+0

@ LazyOne, возможно, но не уверен, насколько он будет полезен. у нас буквально был собственный скрипт, который проверил самый последний параметр команды и предположил, что это путь к файлу без проверки вообще. –

+0

В таком случае нет необходимости в билетах. – LazyOne

11

Я провел полдня, борясь с этим. Основная проблема заключается в переключении между версиями PHPUnit (6.x.x ->4.x.x). (Случилось мне, переключая ветви)

Нажмите кнопку обновления в настройках PHPUnit, исправив его.

(Languages & Frameworks > PHP > PHPUnit)

Убедитесь, что версия PHPUnit он считает, что вы должны совпадающей с его отчетами.

screenshot

+0

Я подал билет здесь: https://youtrack.jetbrains.com/issue/WI-36632 – stringerbell

+1

Я столкнулся с этим, исходя из PHPUnit '5.x' ->' 4.x'. Место в PHPStorm изменилось на «Языки и рамки»> PHP> Тестовые рамки – MECU

7

Т.Л., др

я только мог решить эту проблему путем удаления системы установлен экземпляр PHPUnit из моей системы (Linux):

sudo apt remove phpunit-* 

Подробности

Даже если настройка в PhpStorm wa s использовать композитор автозагрузчика: phpunit library should use composer

по какой-то причине в конечном итоге с помощью TeamCity из /usr/share/php/PHPUnit/Util/Log/TeamCity.php: местный PHPUnit enter image description here

проекта была 6,2, а система по умолчанию был 5,1 -> они несовместимы.

+1

Я использую Laravel, и мне пришлось удалить Phpunit, установленный операционной системой, спасибо. –

0

Этот параметр --teamcity используется PHPStorm для вывода результатов теста.

В чем проблема, вызванная PHP7 и старой версией PHPUnit.

Удалите свой PHPUnit 5 и установите последнюю версию (в настоящее время 6.2) с помощью композитора и вместо этого используйте пространства имен PHPUnit.

Более подробную информацию об этой ошибке: https://github.com/sebastianbergmann/phpunit/issues/2460

Смежные вопросы