2015-10-12 3 views
1

У меня есть эта структура проекта:PHPUnit файл композитор не найден

 
root 
    -lib 
     -dir 
      -file1 (namespace PROJECT\dir\) 
      -file2 
    -tests 
     -dir 
      -file1Test 
      -file2Test (namespace PROJECT\tests) 
    -vendor 

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

"require-dev":{ 
    "phpunit/phpunit": "5.0.*" 
}, 
"autoload":{ 
"psr-4":{ 
    "PROJECT\\": "lib/" 
    } 
} 

Если я запускаю тесты без использования классов из Lib, все работает хорошо , Но (к примеру), если у меня есть

file1Test.php

use PROJECT\dir\file1; 

function void testMethod(){ 
$var = new file1();} 

я получаю это:

Class PROJECT\dir\file1 not found in full/path/to/file1Test.php 

Кто-нибудь знает, где эта проблема может быть?

+0

Как выглядит ваш процесс начальной загрузки PHPUnit? Вы «требовали» автозагрузчика композитора из PHPUnit при запуске тестов? –

+0

Есть несколько способов сделать это: http://stackoverflow.com/a/15711324/541091 –

+0

'function void testMethod() {' неверно PHP, избавиться от 'void' –

ответ

1

Возможно, вам понадобится добавить phpunit.xml в ваш корень, со следующим содержанием.

<phpunit bootstrap="vendor/autoload.php"> 
</phpunit> 

Это загрузит все классы, загруженные композитором.

+0

После добавления этого файла, К сожалению, у меня такая же ошибка. – XWizard

+0

Я бы попробовал именования случаев верблюда. Проект \ Lib \ File1. Ваше именование не является стандартным. См. PSR-1 для стандарта имен файлов, который используется композитором. PSR-4 является его более простым преемником. –

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