我有自己的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
时,我的测试没有被触发!
如何正确触发包装中的测试。
答案 0 :(得分:0)
除非您在phpunit.xml中另外指定,否则PHPUnit通常运行名为test*
的方法。
尝试重命名测试:
public function testAbleToDoSomething() {}
PHPUnit在文档块内还支持特殊的/** @test */
注释:
/** @test */
public function ableToDoSomething() {}