2016-05-05 4 views
5

Итак, я пишу основной пакет Laravel, и, похоже, я наткнулся на еще одну проблему, на этот раз с тестированием.Тестирование пакета Laravel

Пакет в разработке находится в настоящее время в папке packages в корне проекта. Я изменил composer.json файл пакета, чтобы включить зависимости, мне нужно

"require-dev": { 
    "phpunit/phpunit": "~4.0", 
    "laravel/laravel": "dev-develop" 
} 

Однако, всякий раз, когда я попробовать запустить phpunit tests в папке пакета (который содержит папку с именем tests вместе с испытанием образца), я получаю следующее сообщение об ошибке:

PHP Фатальная ошибка: Class 'Осветите \ Foundation \ Testing \ TestCase' не найден в /workspace/laravel/packages/sample/http-request/tests/HttpRequestTest.php на линии 8

тестовый файл - это только автогенератор:

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class HttpRequestTest extends Illuminate\Foundation\Testing\TestCase 
{ 
    /** 
    * A basic test example. 
    * 
    * @return void 
    */ 
    public function testExample() 
    { 
     $this->assertTrue(true); 
    } 
} 

Любая идея, почему это не работает? Тесты приложений выполняются без сбоев, но само приложение не имеет зависимостей, кроме того, что находится в коробке.

РЕШЕНИЕ

Управляемый, чтобы заставить его работать независимо друг от друга за счет расширения PHPUnit_Framework_TestCase:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

Однако, бег нравится:

vendor/bin/phpunit packages/yourname/package-name/ 

работает так же, так что я выбрал его как ответ.

+0

Спасибо, что решили добавить решение здесь. В будущем, пожалуйста, добавьте, что в качестве ответа ниже вопроса - нам нравится чистое разделение между Q & A здесь. Ура! – halfer

ответ

5

Это работает для меня:

class HttpRequestTest extends TestCase 

И работает тест с:

vendor/bin/phpunit packages/yourname/package-name/ 
+0

Нет, до сих пор ничего не найдено :(Опять же, он находится в папке packages/..., которая, в свою очередь, имеет собственную папку поставщика с зависимостями dev, а не от корня приложения, где она работает и для меня – overburn

+1

Я обновил сообщение, я запускаю пакетные тесты, подобные этому, и он работает. –

+1

Хорошо, он работает. Однако он использует зависимости приложения, что было бы невозможно с помощью TravisCI. Я нашел другой способ - Я просто использую тестовую систему PHPUnit. – overburn

1

(Опубликовано от имени О.П. в качестве ответа).

Сумел заставить его работать независимо друг от друга, расширяя PHPUnit_Framework_TestCase:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

Однако работает он нравится:

vendor/bin/phpunit packages/yourname/package-name/ 

Работает хорошо, поэтому я выбрал его в качестве ответа.

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