如何在Laravel项目中为自己的软件包运行php测试?

时间:2019-03-16 19:09:44

标签: php laravel laravel-5 phpunit laravel-testing

我有自己的Laravel软件包,并且希望能够为其编写和创建测试。

我的项目安装在项目ROOT/CompayName/package-name中的以下目录中。我的测试位于ROOT/CompanyName/package-name/tests中,而代码位于ROOT/CompanyName/package-name/src中。

composer.json文件中,我像这样自动加载测试

"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/",
        "CompayName\\ProjectName\\": "CompayName/package-name/tests/"
    }
},

此外,我在phpunit.xml文件中添加了以下内容

<testsuite name="Unit">
    <directory suffix="Test.php">./tests/Unit</directory>
    <directory suffix="Test.php">./CompanyName/project-name/tests/</directory>
</testsuite>

然后我创建以下测试

<?php

namespace CompanyName\ProjectName;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class SomeKindOfTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function ableToDoSomething()
    {       
        dd('ableToDoSomething was called!!!!!!!!!!!');
    }
}

但是,当我从命令行运行phpunit时,我的测试没有被触发!

如何正确触发包装中的测试。

1 个答案:

答案 0 :(得分:0)

除非您在phpunit.xml中另外指定,否则PHPUnit通常运行名为test*的方法。

尝试重命名测试:

public function testAbleToDoSomething() {}

PHPUnit在文档块内还支持特殊的/** @test */注释:

/** @test */
public function ableToDoSomething() {}