【问题标题】:Getting Error: InvalidArgumentException: Unable to locate factory with name [default] [App\User]出现错误:InvalidArgumentException:无法找到名称为 [default] [App\User] 的工厂
【发布时间】:2017-04-20 12:00:27
【问题描述】:

我在 Laravel 5.1 中工作,尝试运行测试时不断收到此错误:

invalidArgumentException:无法找到具有名称的工厂 [默认] [应用\用户]

这是我的测试代码:

namespace tests\unit;

class UserTest extends \TestCase
{

    public function testTheUser() {

        $user = factory(\App\User::class)->make();
        $this->assertTrue(true,'Test Something');

    }

}

这是我的 ModelFactory.php

它位于database/factories/ModelFactory.php

$factory->define(\App\User::class, function (Faker\Generator $faker) {
    static $password;

    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => $password ?: $password = bcrypt('secret'),
        'remember_token' => str_random(10),
    ];
});

为了彻底,这就是 TestCase 的样子:

 class TestCase extends Illuminate\Foundation\Testing\TestCase {

    protected $baseUrl = 'http://localhost';

    /**
     * Creates the application.
     *
     * @return \Illuminate\Foundation\Application
     */
    public function createApplication()
    {
        $app = require __DIR__.'/../bootstrap/app.php';

        $app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();

        return $app;
    }

}

它似乎没有加载 ModelFactory.php 代码。我在文件中放了一个 dd() 语句,看看它是否会停止,我得到同样的错误。我也在 E​​loquent\Factory 文件中放了一个,它甚至没有调用加载函数来包含工厂文件夹中的文件。

我什至使用以下命令运行 php artisan tinker:

>>> factory('\App\User')->make();

InvalidArgumentException 带有消息“无法找到名称为 [default] [\App\User] 的工厂。”

我得到同样的错误。不知道在哪里看这一点。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 谢谢,我看了不少。我在数据库/工厂/文件夹中有我的 ModelFactory.php。它似乎并没有尝试从那里加载文件。我还在另一个项目上进行了 Laravel 5.3 的全新安装,它在那里运行良好。

标签: laravel phpunit


【解决方案1】:

好的,我想通了。

在我的 app.php 中,我使用了以下服务提供商:

'Ccovey\ODBCDriver\ODBCDriverServiceProvider',

我切换回默认的:

 'Illuminate\Database\DatabaseServiceProvider',

现在可以使用了!

【讨论】:

猜你喜欢
  • 2017-03-13
  • 2017-09-20
  • 2019-03-19
  • 2020-02-26
  • 2019-05-26
  • 2016-04-06
  • 1970-01-01
  • 2020-04-05
  • 2021-01-29
相关资源
最近更新 更多