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



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 'OrchestraTestbenchTestCase' not found in /usr/lib/php5/voice/v1.5/vendor/chencha/share/tests/TestCase.php on line 3

我可以在我的require-dev下添加"orchestra/testbench": "~3.0",这将解决该问题,但是我只能在没有插件的测试用例的情况下运行测试用例?

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

找到了问题。我没有添加LamesApce use TestsTestCase;,因为它扩展了外部插件的TestCase类。我很糟糕,浪费了很多时间。

相关内容

最新更新