所以,我正在编写一个基本的 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/