首页 > 解决方案 > 在 null 上对成员函数 connection() 的代码接收调用

问题描述

我正在尝试设置 codeception 以在测试期间使用 sqlite 数据库,但我遇到了下面的错误。我试图包含 bootstrap/app.php 以便应用程序正在运行,但这并没有解决它。有人有想法吗?
我在用着:

  • 流明 v5.7.4
  • php v7.2.10
  • 密码接收 v2.5.1
  • LPaymentTransactionTest.php

     public function testReturn(): void
    {
        \App\DAO\Order::find(1);
    }
    



    密码接收.yml

      paths:
          tests: tests
          output: tests/_output
          data: tests/_data
          support: tests/_support
          envs: tests/_envs
      actor_suffix: Tester
      extensions:
        enabled:
        - Codeception\Extension\RunFailed
      modules:
        enabled:
        - Asserts
        - \Helper\Unit
        - Db:
            dsn: 'sqlite:tests/_data/sqliteTestDb.db'
            user: ''
            password: ''
            #      dump: 'tests/_data/test.sql'
            dump: 'tests/_data/databaseDump.sql'
            populate: true
            cleanup: true
    

    完全错误

    Call to a member function connection() on null
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:1239
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:1205
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:1035
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:952
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:988
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:941
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:1608
     /home/projects/vendor/illuminate/database/Eloquent/Model.php:1620
     /home/projects/tests/unit/LPaymentTransactionTest.php:96
     /tmp/ide-codeception.php:40  
    

    编辑:该模型确实在测试之外工作。因此,如果我通过 routes/web.php 调用模型,它会毫无问题地返回数据。它似乎在测试中不起作用

    edit2:看起来应用程序没有启动,一旦我找到它就会更新修复

    标签: eloquentlumencodeceptionphp-7.2

    解决方案


    actor: UnitTester
    modules:
    enabled:
        - Asserts
        - \Helper\Unit
        - Cli
        - Lumen
        - Db:
              dsn: 'sqlite:tests/_data/database.sqlite'
              dbname: 'tests/_data/database.sqlite'
              dump: 'tests/_data/test.sql'
              user: ''
              password: ''
              populate: true
              cleanup: false
              reconnect: true
              waitlock: 0
    step_decorators: ~        
    

    推荐阅读