测试Laravel包

ove*_*urn 7 php phpunit unit-testing laravel

所以,我正在编写一个基本的Laravel软件包,而且我似乎偶然发现了另一个问题,这次是测试.

开发中的包当前位于packages项目根目录中的文件夹中.我修改了composer.json包的文件以包含我需要的依赖项

"require-dev": {
    "phpunit/phpunit": "~4.0",
    "laravel/laravel": "dev-develop"
}
Run Code Online (Sandbox Code Playgroud)

但是,每当我尝试phpunit tests在包文件夹(包含一个以tests样本测试命名的文件夹)中运行时,我都会收到以下错误:

PHP致命错误:第8行的/workspace/laravel/packages/sample/http-request/tests/HttpRequestTest.php中找不到类'Illuminate\Foundation\Testing\TestCase'

测试文件只是自动生成的存根:

<?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);
    }
}
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用吗?应用程序测试顺利运行,但应用程序本身没有除框中内容之外的依赖项.

解

通过扩展PHPUnit_Framework_TestCase来管理以使其独立工作:

class HttpRequestTest extends PHPUnit_Framework_TestCase 
Run Code Online (Sandbox Code Playgroud)

但是,运行它像:

vendor/bin/phpunit packages/yourname/package-name/
Run Code Online (Sandbox Code Playgroud)

也适用,所以我选择它作为答案.

Ale*_*nin 7

这对我有用:

class HttpRequestTest extends TestCase
Run Code Online (Sandbox Code Playgroud)

并运行测试:

vendor/bin/phpunit packages/yourname/package-name/
Run Code Online (Sandbox Code Playgroud)