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)
也适用,所以我选择它作为答案.
这对我有用:
class HttpRequestTest extends TestCase
Run Code Online (Sandbox Code Playgroud)
并运行测试:
vendor/bin/phpunit packages/yourname/package-name/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3144 次 |
| 最近记录: |