2017-02-14 6 views
0

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

Перед этим я использовал версию 5.7.13.

Я в настоящее время требует пакет в моем composer.json так:

"require-dev": { 
    "phpunit/phpunit": "^6.0" 
    }, 

Я пусть все мои тесты продлить \PHPUnit\Framework\TestCase класс вместо PHPUnit_Framework_TestCase класса.

Моя конфигурация осталась прежней, которая выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" ?> 
<phpunit bootstrap="vendor/autoload.php" 
     color="true" 
     convertErrorsToExceptions="true" 
     convertNoticesToExceptions="true" 
     convertWarningsToExceptions="true" 
     stopOnFailures="false" 
     syntaxCheck="false"> 
    <testsuites> 
     <testsuite name="Unit Tests"> 
      <directory>./tests/bas/ProjectName/</directory> 
     </testsuite> 
    </testsuites> 
</phpunit> 

Моя структура каталогов выглядит следующим образом:

├───src 
│ └───bas 
│  └───ProjectName 
│   └───... source files 
├───tests 
│ └───bas 
│  └───ProjectName 
│   ├───...test files like "ExampleTest.php" 

при открытии терминала в корне моего проекта и введя phpunit, он дает следующее сообщение:

PHPUnit 3.7.21 от Sebastian Be rgmann.

чтения конфигурации из C: \ Users \ Bas \ Web_development \ ProjectName \ phpunit.xml

Время: 30 мс, Память: 4.00MB

тестирование не выполнено!

Я уже попытался добавить suffix="Test.php" к directory тег внутри конфигурации PHPUnit.

Я также попытался удалить папку /vendor/ из Composer и установить пакеты обратно командой composer update.

Все мои тестовые функции начинаются с слова test.


the answer from John Smith С Я получаю следующее сообщение об ошибке:

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../phpunit/phpunit" && pwd) 

# See if we are running in Cygwin by checking for cygpath program 
if command -v 'cygpath' >/dev/null 2>&1; then 
     # Cygwin paths start with /cygdrive/ which will break windows PHP, 
     # so we need to translate the dir path to windows format. However 
     # we could be using cygwin PHP which does not require this, so we 
     # test if the path to PHP starts with /cygdrive/ rather than /usr/bin 
     if [[ $(which php) == /cygdrive/* ]]; then 
       dir=$(cygpath -m "$dir"); 
     fi 
fi 

dir=$(echo $dir | sed 's/ /\ /g') 
"${dir}/phpunit" "[email protected]" 
+0

являются функционируют с правильным именем (я считаю, что они должны начать с 'test') в файле? – Nanne

+0

@Nanne Да, есть. – Bas

+0

Вы выиграли? –

ответ

1

Если вы используете композитор управлять зависимостями то при запуске из корневого каталога вашего проекта просто phpunit вы Propably выполнить глобальный и старый двоичный файл phpunit.

Вы просто запустить тесты с:

PHPUnit 3.7.21 Себастьян Бергманн.

Вместо глобального Exec следует запустить локальную зависимость с помощью команды php ./vendor/bin/phpunit

+0

I Я получаю сообщение об ошибке, я вставляю его в свой вопрос. – Bas

+0

Вы не можете напрямую выполнять двоичные файлы без окон. –

+0

Как моя IDE сделала это раньше? Я в настоящее время на IntelliJ – Bas