php Laravel 8不运行新创建的测试,也不拾取已删除的测试

ax6ht2ek  于 2023-03-28  发布在  PHP
关注(0)|答案(3)|浏览(114)

我刚刚开始使用Laravel 8测试套件,并选择为我的帐户创建过程创建一个功能测试。我已经运行了php artisan make:test AccountCreation并将第一个测试用例作为函数编写,但是,当我运行php artisan test时,它没有选择我的功能测试,为什么?
同样,如果我试图删除默认的示例测试,我会得到一个错误消息,告诉我无法找到该测试?我错过了什么?

tests/Feature/AccountCreation.php

<?php

namespace Tests\Feature;

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

class AccountCreation extends TestCase
{
    /**
     * A basic feature test example.
     *
     * @return void
     */
    public function test_creates_user_account_successfully()
    {
        $response = $this->post('/api/account/create');
        $response->assertStatus(201);
    }
}

我是否需要运行一个特殊的命令来让Laravel获取这些测试?

1zmg4dgp

1zmg4dgp1#

因为你应该将'Test'附加到你的测试类中,因为PHPUnit会检查所有以Test结尾的类,所以修改:

class AccountCreation extends TestCase { ...

致:

class AccountCreationTest extends TestCase { ...

别忘了更改类文件名。

bihw5rsg

bihw5rsg2#

/**@test
每次测试前都要这样。我觉得很有效。

jum4pzuy

jum4pzuy3#

对于其他人来说,如果他们最终遇到了这个问题,但接受的答案对他们没有帮助。PHPUnit希望测试类以'Test'结束,并且对于单个测试方法以单词'test'开始。
所以这是根据@Abolfazl Mohajeri的回答:

class AccountCreationTest extends TestCase
{
    public function test_creates_user_account_successfully()
    {
        //code
    }
}

这不会运行测试(@Ryan H的原始问题):

class AccountCreation extends TestCase
{
    public function test_creates_user_account_successfully()
    {
        //code
    }
}

这也不会运行测试:

class AccountCreationTest extends TestCase
{
    public function it_creates_user_account_successfully()
    {
        //code
    }
}

@keepyourmouthshut的答案之所以有效,是因为这里记录了PHPUnit注解

相关问题