Yii2 如何确定验收测试的路线?
我正在尝试在yii2高级应用程序上运行验收测试。开箱即用的验收测试失败。我将从第一个问题开始:我认为路线是错误的,我不知道在哪里可以修复它们。例如,“关于”页面的错误为:Yii2 如何确定验收测试的路线?,yii2,codeception,acceptance-testing,Yii2,Codeception,Acceptance Testing,我正在尝试在yii2高级应用程序上运行验收测试。开箱即用的验收测试失败。我将从第一个问题开始:我认为路线是错误的,我不知道在哪里可以修复它们。例如,“关于”页面的错误为: Can't be on page "/frontend/web/index-test.php/site/about": "/frontend/web/index-test.php/site/signup" 这条路线是从哪里来的??当然那里没有页面,那条路线是垃圾。我试着把它放到浏览器里。。没有什么。。当然我很想一步一步地完成
Can't be on page "/frontend/web/index-test.php/site/about":
"/frontend/web/index-test.php/site/signup"
这条路线是从哪里来的??当然那里没有页面,那条路线是垃圾。我试着把它放到浏览器里。。没有什么。。当然我很想一步一步地完成测试课程,看看到底发生了什么,但我也不知道。有人对此有想法吗?我想如果我能找到正确的路线,至少我能到达某个地方。更新的答案:
确保从项目根目录运行
php-S localhost:8080
,而不是从测试目录运行
我刚试过,结果和你的错误差不多
原始答案: 开箱即用,在运行测试之前,您需要做几件事情
tests/codeception/config
并查看/editconfig.php
(见下文)codeception/bin/yii migrate
php-S localhost:8080
tests/codeception
中的每个目录,如frontend
codecept构建
codecept运行
如果您确实更改了一些代码,那么测试就会中断,您必须修复它
tests/codeception/config/config.php
:
'components' => [
'db' => [
'dsn' => 'mysql:host=localhost;dbname=name_of_test_db',
],
编辑:顺便说一句,这条路线对我来说很好。我想问题是,在进行测试之前,您没有启动Web服务器
您可能需要修复文档根目录,如下所述:我当然已经完成了上述所有操作,但是,感谢您抽出时间再次检查。我有一个不同之处,就是我使用的是不同的web服务器,我在这台机器上使用的是MAMP,所以我所做的就是将PhpBrowser url设置为我在这个项目中使用的主机名。那是错的部分吗?无论如何,这就是为什么我“专注于”试图找出这个路线问题;它是否使用与常规应用程序相同的路由?它确实使用与常规应用程序相同的路由,只是它使用
index test.php
而不是index.php
:)尝试撤消phpbrowser的设置-可能是这样。我只是不去管那个设置,因为我发现它把事情搞砸了。是的,看起来你必须使用建议的配置才能让它工作,尽管我仍然有一个问题。如前所述,我在项目根目录中启动了内置web服务器。我可以在浏览器上找到它,它就可以工作了(!)。但是,出于某种原因,我仍然会遇到同样的错误:不能在页面上“/frontend/web/index test.php/site/about”:
我无法想象现在会是什么样子,我觉得我把所有的事情都看了一遍,还是没有运气。任何想法都将不胜感激。您的答案是正确的,尽管我的错误可能对其他人有所帮助,那就是:我想我可以使用我的开发web服务器,它已经在运行接受测试了。那不行。如果不进行更多配置,则无法执行此操作,必须使用说明中描述的内置Web服务器。因此,在答案的第5项中,您可能会说:“启动此web服务器:”