出现错误:InvalidArgumentException:无法找到名称为 [default] [App\User] 的工厂

Posted

技术标签:

【中文标题】出现错误:InvalidArgumentException:无法找到名称为 [default] [App\\User] 的工厂【英文标题】: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] 的工厂。”

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

【问题讨论】:

看看这个laracasts.com/discuss/channels/testing/… 谢谢,我看了不少。我在数据库/工厂/文件夹中有我的 ModelFactory.php。它似乎并没有尝试从那里加载文件。我还在另一个项目上进行了 Laravel 5.3 的全新安装,它在那里运行良好。 【参考方案1】:

好的,我想通了。

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

'Ccovey\ODBCDriver\ODBCDriverServiceProvider',

我切换回默认的:

 'Illuminate\Database\DatabaseServiceProvider',

现在可以使用了!

【讨论】:

漂亮,谢谢!是时候切换到 sybase 了 :) ***.com/a/32555727/4233593

以上是关于出现错误:InvalidArgumentException:无法找到名称为 [default] [App\User] 的工厂的主要内容,如果未能解决你的问题,请参考以下文章

为啥Debug无错误Release出现错误?

WIN2008 R2 组策略出现错误

在Ubuntu下,改为国内软件源,出现错误如图?

浏览器出现错误怎么办

电脑上网有个网站进去后出现错误523怎么弄?

SQL登陆出现错误,用SQL身份登陆没问题,用windows身份登陆就出现下面的错误。求解!!!