【发布时间】:2016-01-27 06:26:02
【问题描述】:
我正在尝试通过 Laravel 5.2.10 使用 PHPUnit 测试。我在我的项目中本地安装了 PHPUnit 5.1.4。
当我跑步时:
phpunit
PHPUnit 完美运行我的test 目录中的所有测试。
但是,当我运行时:
phpunit tests/unit/testThatFails.php
我明白了:
PHP Fatal error: Class 'PHPUNIT_Framework_TestCase' not found in ...
奇怪的是,当我运行 phpunit 时,它成功运行了测试目录中的每个测试,包括这个 testThatFails.php 就好了。
为什么当我尝试只运行一个测试时它会中断?
更新:
这是我的phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>./tests/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<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>
更新:
目前,由于我使用的是 Laravel,我通过扩展 TestCase 而不是 PHPUNIT_Framework_TestCase规避这个问题,并且我的测试能够按预期运行。然而,这只是一个规避,而不是一个解决方案。 (这对我来说也很奇怪,因为TestCase 本身最终确实从PHPUNIT_Framework_TestCase 扩展而来。
【问题讨论】: