1 Вопрос: Как запустить php тесты в проекте Laravel для моего собственного пакета?

вопрос создан в Sat, Mar 16, 2019 12:00 AM

У меня есть собственный пакет 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
1 ответ                              1                         

PHPUnit обычно запускает методы с именем test*, если вы не указали иначе в phpunit.xml.

Попробуйте переименовать свой тест:

public function testAbleToDoSomething() {}

PHPUnit также поддерживает специальную аннотацию /** @test */ внутри докблока:

/** @test */
public function ableToDoSomething() {}
    
0
2019-03-16 20: 20: 00Z
  1. Спасибо за информацию. Я попытался переименовать метод, чтобы начать с ключевого слова test, и я также попытался украсить его с помощью /** @test */, но все еще работаю.
    2019-03-16 23: 21: 03Z
источник размещен Вот