【问题标题】:Codeception won't run any tests. Fails with no errors, quits before running any testsCodeception 不会运行任何测试。失败且没有错误,在运行任何测试之前退出
【发布时间】:2015-12-21 04:10:38
【问题描述】:

我去运行验收测试,但它只输出 Codeception PHP Testing Framework v2.0.12 Powered by PHPUnit 4.5.1 by Sebastian Bergmann and contributors. 然后它退出而没有任何错误消息。没有测试运行,没有错误消息。 浏览器测试工作正常,只有验收测试被破坏。

我已经准备好解决这个问题了,但是我想创建一个记录,以备下次我或其他人遇到这个问题时使用。

如果您的 codeception 退出时没有任何错误或失败消息,则表示您的代码中某处存在错误。我在 Acceptance Helper 文件中发现了错误,其中我有一个函数的副本。函数在php中不能有相同的名字,所以一切都失败了。但是codeception不会输出任何错误信息。

为了解决这个问题,您需要查看您的 Helper 函数以查找语法错误,或者它可能在您的实际测试中。 它失败的原因是codeception在php代码中遇到了一个错误,然后死了,没有抛出任何错误。让你感到困惑和沮丧。现在你可以找到这个问题并重新开始你正在做的事情。

耶!

【问题讨论】:

    标签: testing syntax-error codeception acceptance-testing


    【解决方案1】:

    如果您看到这种行为(codeception 退出且没有任何错误消息),则可能是某个地方发生了致命的 PHP 错误,但不一定在您自己的代码或您的 codeception 生成的文件中。

    根据您的 PHP 配置,这些错误应该显示在错误日志中,即使它们没有输出到控制台。

    例如,如果您在 Mac 上使用 MAMP,则默认情况下错误日志在此处:/Applications/MAMP/logs/php_error.log

    清除 PHP 错误日志,运行(非工作)测试,然后再次检查日志。它应该提供更多洞察力。

    就我而言,这是在 Laravel 5.5 上运行 codeception 4 的问题,因此缺少 symfony/service-contracts 包中的类。用 composer 安装这个包解决了“不可见”的问题(尽管我最终不得不降级到 composer 3,因为似乎没有一组兼容的 symfony/Laravel 5.5/composer 4 包)。

    【讨论】:

      【解决方案2】:

      您的测试代码中存在语法错误,找到它并删除它,它会起作用。我敢打赌错误是在 AcceptanceHelper.php 或浏览器中,或者任何适合的东西都不会运行测试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多