php - 测试 Laravel 包

标签 php unit-testing laravel phpunit

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

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

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

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

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

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

<?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/

同样有效,所以我选择它作为答案。

最佳答案

这对我有用:

class HttpRequestTest extends TestCase

并运行测试:

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

关于php - 测试 Laravel 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37044664/

相关文章:

php - 相对位置和背景颜色 : can't cover the page

php - 使用 ClearDB 在 Heroku 上部署 PHP Web 应用程序

java - Android 单元测试在日志中抛出 NoClassDefFoundError

php - 如何在 Laravel 中的 Blade 模板中链接到静态资源?

javascript - 使用jquery从外部url获取json数据

php - 为什么我的级联不工作? - 违反完整性约束

c# - 如何测试一个充满常量的类

java - 在 Struts 2 中运行测试用例时出现错误

Laravel 4 Eloquent ORM 选择其中 - 数组作为参数

Laravel Fluent Query Builder 与子查询连接