【问题标题】:How to trigger unit testing from Laravel Artisan如何从 Laravel Artisan 触发单元测试
【发布时间】:2018-07-21 22:28:12
【问题描述】:

我有一种情况,我使用 PHPUnit 进行了一些单元测试,我想从 laravel 的工匠控制台实用程序触发它们。我google了一下,没有找到参考,可以吗?我不是在问如何测试工匠命令。或者如何动态调用另一个 artisan 命令,但要从 artisan 触发单元测试

我可以使用 Artisan 外观调用某些命令,例如

Artisan::call('migrate'); //which calls migration

像这样我可以调用单元测试吗?我正在使用 PHPUnit

【问题讨论】:

标签: php laravel unit-testing


【解决方案1】:

你可以使用 symfony 的 process 命令,它无论如何都会驱动 Laravel 的 artisan 命令:

use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;

$process = new Process('phpunit');
$process->run();

// executes after the command finishes
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}

echo $process->getOutput();

【讨论】:

    【解决方案2】:

    您可以使用shell_exec()exec()

    shell_exec('/path/to/phpunit/ /path/to/tests')
    

    【讨论】:

    • 但是我如何从 Artisan 调用 exec?这是真正的问题
    • @ShobiPP 这可以在任何地方工作,你为什么不想在 Artisan 命令中使用它?
    猜你喜欢
    • 2020-02-25
    • 1970-01-01
    • 2020-11-20
    • 2017-12-05
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多