В классе «ТестыПоддержкаUserDatabaseTest» в CodeIgniter 4 не найдено тестов

#php #phpunit #codeigniter-4

Вопрос:

Мне нужна ваша помощь, пожалуйста, я все еще изучаю codeigniter 4 и пытаюсь создать приложение, я обнаружил здесь проблему, когда я создавал тестирование в своей базе данных и модели и показывал вот так, когда я запускал тест

 > phpdbg -qrr .vendorbinphpunit
PHPUnit 9.5.4 by Sebastian Bergmann and contributors.

W                                                                   1 / 1 (100%)

Time: 00:00.094, Memory: 10.00 MB

There was 1 warning:

1) Warning
No tests found in class "TestsSupportUserDatabaseTest".

WARNINGS!
Tests: 1, Assertions: 0, Warnings: 1.

Generating code coverage report in Clover XML format ... done [00:00.179]

Generating code coverage report in HTML format ... done [00:00.663]

Generating code coverage report in PHP format ... done [00:00.017]


Code Coverage Report:   
  2021-04-05 09:17:15   

 Summary:
  Classes:  0.00% (0/4) 
  Methods:  0.00% (0/4) 
  Lines:    0.00% (0/19)
 

мой тест-это только один тест, тест для проверки данных, мой тест базы данных пользователей и мягкое удаление, подобное этому
UserDatabaseTest

 namespace TestsSupport;

use TestsSupportDatabaseDatabaseTest;
use CodeIgniterTestCIDatabaseTestCase;

class UserDatabaseTest extends CIDatabaseTestCase
{
    protected $migrate = true;
    protected $refresh  = true;
    protected $seed = "UserSeeder";


    public function setUp(): void
    {
        parent::setUp();
    }

    public function tearDown(): void
    {
        parent::tearDown();
    }

    public function userFindAllTest()
    {
        $model = model('UserModel');
        $objects = $model->findAll();

        $this->assertCount(30, $objects);
    }

    public function UserSoftDeleteTests()
    {
        $model = model('UserModel');

        $object = $model->first();
        $model->delete($object->id);

        $this->assertNull($model->find($object->id));

        $criteria = ['id' => $object->id, 'deleted_at' => null];
        $this->dontSeeInDatabase('users', $criteria);

        $criteria = ['deleted_at' => null];
        $this->seeNumRecords(29, 'users', $criteria);
    }
}
 

я понятия не имею о проблеме и о том, как ее решить, спасибо за вашу помощь раньше.

полный проект на github

Ответ №1:

Все методы тестирования должны начинаться с «test». Таким образом, userFindAllTest изменится на testUserFindAllTest, а UserSoftDeleteTests изменится на testUserSoftDeleteTests. Кроме того, наилучшей практикой для метода проверки именования является использование строчных и отдельных слов с подчеркиванием. Следовательно, testUserFindAllTest должен быть test_user_find_all (удаление теста в конце, поскольку это подразумевается).

Комментарии:

1. О, большое спасибо, теперь этот тест работает, спасибо, сэр

2. Рад вам помочь 🙂