现在,当我为Laravel应用程序设置一个新测试时,它从基础TestCase
类扩展
class SomeTest extends TestCase
{
}
我想创建一个名为AnotherTestCase
的新基础测试类,因此我可以创建共享setup / teardown / helper方法等的测试用例...
class SomeTest extends AnotherTestCase
{
}
然而,当我跑
时phpunit app/tests/SomeTest.php
我收到以下错误
PHP Fatal error: Class 'AnotherTestCase' not found in /[...]/app/tests/SomeTest.php on line 3
尽管我在
定义了一个类,但这是事实#File: app/tests/AnotherTestCase.php
<?php
class AnotherTestCase extends TestCase
{
}
这很令人困惑,因为phpunit似乎会自动加载TestCase
类。
我是否需要在自定义基础测试类中手动要求,或者有没有办法告诉phpunit我的新基础测试类?换句话说,为什么phpunit会自动加载TestCase
,但不会自动加载AnotherTestCase
答案 0 :(得分:7)
您可以将此错误添加到composer.json
:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/filters",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/tests/AnotherTestCase.php" // <-- Add Me
],
// ...
然后确保你做composer dump-autoload
。我刚刚通过添加以下类来测试它:
class AnotherTestCase extends TestCase {}
并改变了我现有的一个测试,将其作为父级使用。我相信composer.json
中的条目是您加载TestCase
的方式。