Php codeception自定义目录结构

Php codeception自定义目录结构,php,codeception,Php,Codeception,目前,我正在尝试在一个相当大的项目中实现codeception,codeception使用的默认平面目录布局是不可行的,因为我们将有太多的测试挤到一个目录中 Codeception使用以下结构: tests/ - _data - _output - _support - acceptance - functional - unit 测验/ -_数据 -_输出 -_支持 -接受 -功能性 -单位 我们正在尝试将测试包括在mvc应用程序结构中,以便实现以下功能: application/ - co

目前,我正在尝试在一个相当大的项目中实现codeception,codeception使用的默认平面目录布局是不可行的,因为我们将有太多的测试挤到一个目录中

Codeception使用以下结构:

tests/ - _data - _output - _support - acceptance - functional - unit 测验/ -_数据 -_输出 -_支持 -接受 -功能性 -单位 我们正在尝试将测试包括在mvc应用程序结构中,以便实现以下功能:

application/ - controllers/ - folder1/ - controller1.php - test.php - folder2/ - controller2.php - test.php - views/ - view1/ - view1.php - test.php - view2/ - view2.php - test.php 应用/ -控制器/ -折叠1/ -controller1.php -test.php -折叠2/ -controller2.php -test.php -观点/ -视图1/ -view1.php -test.php -视图2/ -view2.php -test.php 这样的结构使我们更容易遵循,否则我们将在一个文件夹中完成1000个测试。我知道我们可以在主codeception.yml中定义子名称空间,但是它仍然使用我们不想使用的相同平面目录布局


codeception引导程序看起来是什么样子的,可以让它查看顶级文件夹,然后在它下面的目录中运行任何测试,并将其包含在主运行程序中?

我建议不要将测试包含在应用程序业务代码中,因为它们根本不为应用程序提供任何功能。测试应始终在其自己的范围内

您会发现默认的codeception结构与大量的测试相混淆。我遇到了同样的问题,但对于解决方案,您必须记住一件事:您不受结构的约束:

tests/ - _data - _output - _support - acceptance - functional - unit
  • 接受
  • 功能性
  • 单位
您可以根据需要创建尽可能多的测试套件(默认值仅为建议)。您也可以在一个套件中随意混合单元测试和功能测试。我最终为我要测试的不同案例创建了许多小套件:

  • 套房1/
    • controllertest1.php
    • viewtest1.php
  • 套房2/
    • controllertest2.php
    • viewtest2.php 如果这个套件最终很小,我会将应用程序的一个模块的测试放在一个套件中。不要忘记用表达性的名称命名测试用例。它让你的生活轻松多了
只需使用./codeept g:suitesuite1创建一个新套件即可