0

我有自己的 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,我的测试没有被触发!

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

4

1 回答 1

0

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

尝试重命名您的测试:

public function testAbleToDoSomething() {}

/** @test */PHPUnit 还支持docblock 内的特殊注解:

/** @test */
public function ableToDoSomething() {}
于 2019-03-16T19:14:45.180 回答