Laravel PestUnit - 无法断言 404 与 200 相同

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

我正在尝试使用Pest PHP框架进行测试,但无法执行简单的测试。

it('can view home page', function () {
    $response = $this->get('/');

    expect($response->status())->toBe(200);
});

我总是收到错误:

无法断言 404 与 200 相同。

似乎没有正确读取 URL。这是我的文件配置:

.env 文件

APP_NAME="My software name"
APP_ENV=local
APP_KEY=base64:abchdX+Hm/LYphNZIBx942SFZoJYzGUFGidCxQifqMw=
APP_DEBUG=true
APP_URL=http://localhost/mysoftware

phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
         bootstrap="vendor/autoload.php"
         colors="true">
    <testsuites>
        <testsuite name="Unit">
            <directory suffix="Test.php">./tests/Unit</directory>
        </testsuite>
        <testsuite name="Feature">
            <directory suffix="Test.php">./tests/Feature</directory>
        </testsuite>
    </testsuites>
    <source>
        <include>
            <directory suffix=".php">./app</directory>
        </include>
    </source>
    <php>
        <env name="APP_ENV" value="local"/>
        <env name="BCRYPT_ROUNDS" value="4"/>
        <env name="CACHE_DRIVER" value="array"/>
        <!-- <env name="DB_CONNECTION" value="sqlite"/> -->
        <!-- <env name="DB_DATABASE" value=":memory:"/> -->
        <env name="MAIL_MAILER" value="array"/>
        <env name="QUEUE_CONNECTION" value="sync"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="TELESCOPE_ENABLED" value="false"/>
    </php>
</phpunit>

我读过一些主题,例如:

https://www.reddit.com/r/laravel/comments/kivwyr/laravel_phpunit_test_pointing_to_wrong_url/

使用 phpunit.xml 配置 Laravel 5 单元测试 URL

Laravel phpunit 没有获得正确的 url

我最终尝试通过附加以下内容来纠正我的 phpunit.xml 文件:

<env name="APP_URL" value="http://localhost/mysoftware"/>

但是错误仍然存在。我可以做什么来进一步调试?


编辑1) - 我的路线文件确实有

/
/login
路线,无论测试指向家庭路线还是登录路线,错误都是一样的。

it('can view home page', function () {
    $response = $this->get('/');

    expect($response->status())->toBe(200);
});

it('can view login page', function () {
    $response = $this->get('/login');

    expect($response->status())->toBe(200);
});

php laravel php-pest
1个回答
0
投票

尝试使用此命令删除配置缓存:

php artisan config:cache
© www.soinside.com 2019 - 2024. All rights reserved.