避免执行外部插件'测试用例

时间:2017-03-01 03:28:48

标签: php laravel laravel-5 phpunit laravel-5.4

composer.json

    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/socialite": "^3.0",
        ...
        "chencha/share": "^5.2"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },
    ...
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },

phpunit.xml

<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="bootstrap/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory suffix="Test.php">./tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">./app</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>
</phpunit>

当我运行phpunit时,它会出现以下错误

PHP Fatal error: Class 'Orchestra\Testbench\TestCase' not found in /usr/lib/php5/voice/v1.5/vendor/chencha/share/tests/TestCase.php on line 3

我可以在我的"orchestra/testbench": "~3.0"下添加require-dev来解决问题,但是我是否可以在没有插件的情况下只运行我的测试用例&#39;测试案例?

2 个答案:

答案 0 :(得分:0)

在标准配置中,不运行供应商目录中的测试。您显示的phpunit.xml似乎很正常,因此您应该确保在有效目录中运行测试。在运行测试时,您应该位于主应用程序目录中(查看错误应该是/usr/lib/php5/voice/v1.5/)。

答案 1 :(得分:0)

发现了这个问题。我没有添加namesapce use Tests\TestCase;,因为它扩展了外部插件的TestCase类。我很糟糕,浪费了很多时间。