我正在尝试使用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
我最终尝试通过附加以下内容来纠正我的 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 artisan config:cache