codeception自定义目录结构

时间:2015-04-16 16:34:57

标签: php 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

这种结构使得我们更容易理解,否则我们将在一个文件夹中结束1000次测试。我知道我们可以在主codeception.yml中定义子命名空间,但它仍然使用我们不想使用的相同平面目录布局。

代码检测引导程序看起来是什么样子来查看顶级文件夹并在其下面的目录中运行任何测试并将其包含在主流程中?

1 个答案:

答案 0 :(得分:1)

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

您会发现默认的代码结构与大量测试混淆。我遇到了同样的问题,但是对于解决方案,你必须记住一件事:你没有被绑定到结构:

  • 接受
  • 功能
  • 单元

您可以根据需要创建尽可能多的测试套件(默认值仅为建议)。您还可以在一个套件中自由地混合单元和功能测试。我最终为我想测试的不同情况创建了许多小套件:

  • suite1 /
    • controllertest1.php
    • viewtest1.php
  • suite2 /
    • controllertest2.php
    • viewtest2.php 如果这个套件最终变小,我会将你的应用程序的1个模块的测试放入1个套件中。不要忘记使用富有表现力的名称命名测试用例。它让你的生活更轻松。

只需使用./codecept g:suite suite1创建一个新套件 http://codeception.com/docs/reference/Commands#GenerateSuite