如何在生产中禁用 Laravel Php 单元测试

问题描述 投票:0回答:2

在低于 5.6 的 Laravel 中,有远程代码执行选项,由 phpunit 测试运行远程代码执行以避免这种情况,我想知道如何在生产中删除

laravel phpunit
2个回答
1
投票

如果您的所有测试都继承自基本 TestCase,那么您始终可以覆盖 setUp 方法,例如:

    protected function setUp()
    {
        parent::setUp();
        if (env('APP_ENV') !== 'testing') {
           throw new \Exception('Argh!');
        }
    }

0
投票

我进一步推动了 Paul 的解决方案,以防止在 env 未指向 local_db Docker 容器时执行测试。这也应该阻止生产中的执行。多架构版本。防止意外刷新。

    protected function setUp(): void
    {
        parent::setUp();
        collect(['DB_HOST', 'DB2_HOST', 'DB3_HOST'])->each(function ($db) {
            if (env($db) !== 'local_db') {
                throw new \Exception( "$db Must use Local DB for testing!");
            }
        });
    }
© www.soinside.com 2019 - 2024. All rights reserved.