我在 laravel 5.5 中使用 phpunit。
当我使用
运行测试时vendor/bin/phpunit .
显示错误
no tests excucted.
在 phpunit.xml 文件中我设置了测试目录的后缀。
但我不知道问题出在哪里。
您可以分享更多您的工作细节吗?如果您是 Laravel 新手,可以关注:https://www.youtube.com/watch?v=3uYXAcit_Sg&list=PL3VM-unCzF8iPERY07XRw0JXG_c50CapR。有一步一步的指导
我写这篇文章是为了防止 Laravel 8 的人来发现类似的错误。
今天我学习了 TDD 并遵循 Youtube 上的教程。在一个阶段中,我创建了一个与教程解释的名称相似的测试函数, 。 但随后出现错误“未执行测试!”出现。
与这个问题类似。 我已经检查并确保文件名带有“测试”一词后缀。 。 我不知道出了什么问题。但经过深入研究,发现在 Laravel 8(或者也可能是之前的版本)中,测试函数名称必须以 Test 为前缀。
例如
public function check_family()
=> 不起作用
public function test_check_family()
=> 工作
确保:
Test
结束,就像 SomethingTest
test_
开头,比如 test_something(): void
@test
进行注释,而不是第 2 点有效示例:
<?php
namespace Tests\Unit;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Tests\TestCase;
class SomethingTest extends TestCase
{
/**
* @test
*/
public function do_things(): void
{
$v = 1;
$this->assertEquals(1, $v, "Test equality of 1");
}
}
再次注意,上面的
@test
很重要。
不幸的是我没有在文档中找到这一点。但这里是:
https://laravel.com/docs/11.x/testing
感谢您使用准时的文档参考更新此答案(如果您找到的话)。我只是通过另一个工作项目的复制粘贴才发现了这一点。