Laravel 自定义目录中的测试 - 出现错误 "the name is already in use"

Laravel Tests in custom directory - Getting error "the name is already in use"

我正在尝试构建一个使用 laravel 的应用程序。有一个test目录,我用它来做应用测试。

但我在 app/MyApp/Service 目录中有一项服务。这是目录结构。

app/MyApp/Service 
|-->Services 
|-->Interfaces 
|-->Test 
|------->OLSServiceTest.php

这里是OLSServiceTest.php内容

<?php

namespace App\MyApp\Service\Test;

class OLSServiceTest extends TestCase
{

    public function testInfo()
    {
        $this->assertTrue(true);
    }

    public function testLogin()
    {
        $this->assertTrue(false);
    }

    /**
     * Creates the application.
     *
     * Needs to be implemented by subclasses.
     *
     * @return \Symfony\Component\HttpKernel\HttpKernelInterface
     */
    public function createApplication()
    {
        // TODO: Implement createApplication() method.
    }
}

然后我尝试运行手动测试

$ vendor/phpunit/phpunit/phpunit App\MyApp\Service\Test\OLSServiceTest

但出现此错误:

[Symfony\Component\Debug\Exception\FatalErrorException]
Cannot declare class App\MyApp\Service\Test\OLSServiceTest, because the name is already in use

Fatal error: Cannot declare class App\MyApp\Service\Test\OLSServiceTest, because the name is already in use in /var/www/app/MyApp/Service/Test/OLSServiceTest.php on line 29

我做错了什么?

您似乎在尝试 运行 使用错误的命令进行测试。尝试使用 Vendor bin 目录中的 PHPUnit 我认为它会解决您的问题。

vendor/bin/phpunit app/MyApp/Service/Test/OLSServiceTest.php