代码之家  ›  专栏  ›  技术社区  ›  Leon Segal

为什么测试要刷新实时数据库

  •  0
  • Leon Segal  · 技术社区  · 6 年前

    use RefreshDatabase; ),而不是测试数据库。

    这真是令人困惑,因为一切看起来都很好-我看不出我错过了什么。

    dd(app()->environment()); ,它显示“testing”,因此我希望db test数据库得到刷新。

    我正在使用phpstorm,但我认为这不是问题所在。

    DB_HOST=127.0.0.1
    DB_DATABASE=db
    DB_USERNAME=root
    DB_PASSWORD=
    
    TEST_DB_HOST=127.0.0.1
    TEST_DB_DATABASE=test-db
    TEST_DB_USERNAME=root
    TEST_DB_PASSWORD=
    

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'db'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            // other settings
        ],
    
        'test-mysql' => [
            'driver' => 'mysql',
            'host' => env('TEST_DB_HOST', 'localhost'),
            'port' => env('TEST_DB_PORT', '3306'),
            'database' => env('TEST_DB_DATABASE', 'test-db'),
            'username' => env('TEST_DB_USERNAME', 'root'),
            'password' => env('TEST_DB_PASSWORD', ''),
            // other settings
        ],
    

    <?xml version="1.0" encoding="UTF-8"?>
    <phpunit backupGlobals="false"
             backupStaticAttributes="false"
             bootstrap="vendor/autoload.php"
             colors="true"
             convertErrorsToExceptions="true"
             convertNoticesToExceptions="true"
             convertWarningsToExceptions="true"
             processIsolation="false"
             stopOnFailure="false"
             syntaxCheck="false">
        <testsuites>
            <testsuite name="Application Test Suite">
                <directory>./tests/</directory>
            </testsuite>
        </testsuites>
        <php>
            <env name="APP_ENV" value="testing"/>
            <env name="APP_URL" value="http://app.localhost"/>
            <env name="DB_CONNECTION" value="test-mysql"/>
            <env name="MAIL_DRIVER" value="log"/>
            <env name="CACHE_DRIVER" value="array"/>
            <env name="SESSION_DRIVER" value="array"/>
            <env name="QUEUE_DRIVER" value="sync"/>
        </php>
    </phpunit>
    

    1 回复  |  直到 6 年前
        1
  •  2
  •   Remul    6 年前

    确保phpstorm使用正确的phpunit配置文件:

    设置>语言和;框架>PHP>测试框架>你的 配置>测试跑步者。

    Default configuration file 应该有正确的路径。