【问题标题】:What should be committed or ignored in git for Codeception tests?在 git 中应该为 Codeception 测试提交或忽略什么?
【发布时间】:2018-07-12 06:15:41
【问题描述】:

我浏览了 Codeception 文件,我在 tests/_data/ 目录中看到了 .gitkeep。那是应该保存数据库转储的目录。该转储是将从中恢复站点的数据库。在初始化时,同一个目录还包含一个 .gitkeep 文件,该文件向我表明该目录“应该提交,但现在没有任何内容”。 现在,我不打算将我的数据库提交到我的 repo,但是应该忽略一个文件还是应该忽略整个目录?是否有其他文件是应该忽略的目录?在使用 .git 和自动化测试时,是否有最佳实践可以遵循?

【问题讨论】:

    标签: git testing phpunit codeception


    【解决方案1】:

    如果内容tests/_support/_generated 目前不是,则应忽略它。

    您应该只将测试所需的文件放入tests/_data,因此不应忽略该目录中的任何内容。 不必将实时数据库的内容提交到 git,您需要做的是准备一个仅包含测试所需数据的小 sql 文件并提交该文件。

    【讨论】:

      【解决方案2】:

      除了忽略tests/_support/_generated,您还应该忽略tests/_output,因为运行测试时会生成该输出。 而且,如果你使用的是 Laravel 风格的 .env 配置文件,你可能也想忽略 .env 文件。

      使用 .env 文件,您还可以提交 codeception 的 .yml 配置文件,因为跨环境的任何不同都将在 .env 中定义。

      当然,如果您使用数据库转储,您也需要提交数据库转储。就像 Naktibalda 所说,它应该只包含必要的数据。 但是除了使用完整转储之外,还有许多其他方法可以使用必要的数据设置测试数据库。

      除此之外,我还向我们的项目提交了codecept.phar、chromedriver 和selenium。团队可以更轻松地提取项目并使用这些二进制文件的正确版本立即运行测试。

      【讨论】:

      • 当我问这个问题时,我专门考虑了输出和具体测试。例如,我的一项测试是登录该站点。为此,我必须提供登录信息。我显然不想这样做。我也不想提交数据库转储,因为它包含相同的信息。另外,数据库转储不就是为了恢复原始数据库而使用的吗?还有包含数据库名称和密码的数据库连接文件。甚至输出文件也会显示特定测试中使用的密码。
      • 任何密码都可以在 .env 文件中,将被忽略。数据库转储应该包含测试用户,即使某些用户在测试和实时数据库中相同,他们的密码也不应该与您在实时数据库上的密码相同。
      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多