laravel app :: runnunittests()仅在管道执行期间返回false

发布于 2025-01-19 02:45:32 字数 683 浏览 0 评论 0原文

在我的 Laravel 8 项目中,我有一些测试。

在我的开发机器上,所有的都通过了,但在 GitLab 管道上只有一个失败了。

我已经从管道执行中下载了日志文件(工件),并且得到:“未根据请求设置会话存储。”

问题是,只有在应用程序未经过测试时才应该创建会话,事实上我有:

if(!$request->has('need_token') && !App::runningUnitTests()){
    $request->session()->regenerate();
}

如前所述,在我的开发机器上一切正常,如果我记录 App::runningUnitTests() 我总是得到 true 而 php artisan 测试或 phpunit。

在管道日志中,artisan test 和 phpunit 都失败,并且 App::runningUnitTests() 返回 false。

这些语句也返回 false:

config('app.env') == 'testing'
App::environment() == 'testing'

在测试执行之前,在 .gitlab-ci.yml 中我也有 php artisan config:cache --env=testing

您有任何提示吗?

In my Laravel 8 project i have some tests.

On my dev machine all are passing, but on GitLab pipeline just one is failing.

I've downloaded the log file (artifacts) from pipeline execution and i get: "Session store not set on request."

The problem is that the session should be created only if the app is not under test, indeed i have:

if(!$request->has('need_token') && !App::runningUnitTests()){
    $request->session()->regenerate();
}

as said before, on my dev machine everything is ok, and if i log App::runningUnitTests() i always get true while php artisan test or phpunit.

In the pipeline logs, both artisan test and phpunit are failing and App::runningUnitTests() returns false.

Returns false also these statements:

config('app.env') == 'testing'
App::environment() == 'testing'

Before test execution, in .gitlab-ci.yml i also have php artisan config:cache --env=testing

Do you have any hints?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文