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" 这条路线是从哪里来的??当然那里没有页面,那条路线是垃圾。我试着把它放到浏览器里。。没有什么。。当然我很想一步一步地完成

我正在尝试在yii2高级应用程序上运行验收测试。开箱即用的验收测试失败。我将从第一个问题开始:我认为路线是错误的,我不知道在哪里可以修复它们。例如,“关于”页面的错误为:

Can't be on page "/frontend/web/index-test.php/site/about":
"/frontend/web/index-test.php/site/signup"

这条路线是从哪里来的??当然那里没有页面,那条路线是垃圾。我试着把它放到浏览器里。。没有什么。。当然我很想一步一步地完成测试课程,看看到底发生了什么,但我也不知道。有人对此有想法吗?我想如果我能找到正确的路线,至少我能到达某个地方。

更新的答案:
确保从项目根目录运行
php-S localhost:8080
,而不是从测试目录运行

我刚试过,结果和你的错误差不多


原始答案

开箱即用,在运行测试之前,您需要做几件事情

  • 全局安装Codeception
  • 创建测试数据库
  • 转到
    tests/codeception/config
    并查看/edit
    config.php
    (见下文)
  • 运行迁移:
    codeception/bin/yii migrate
  • 启动Web服务器:
    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服务器:”