Testing Codeception赢得';不要运行任何测试。失败且无错误,在运行任何测试之前退出

Testing Codeception赢得';不要运行任何测试。失败且无错误,在运行任何测试之前退出,testing,syntax-error,codeception,acceptance-testing,Testing,Syntax Error,Codeception,Acceptance Testing,我去运行验收测试,但它只输出 Codeception PHP测试框架v2.0.12 由Sebastian Bergmann和贡献者提供的PHPUnit 4.5.1支持。 然后退出,没有任何错误消息。没有测试运行,没有错误消息。 浏览器测试运行良好,只有验收测试失败 我已经准备好解决这个问题,但我想为下次我或任何其他人遇到这个问题时创建一个记录 如果您的codeception在没有任何错误或失败消息的情况下退出,则表示您的代码中某处有错误。我在me Acceptance Helper文件中发现

我去运行验收测试,但它只输出

Codeception PHP测试框架v2.0.12
由Sebastian Bergmann和贡献者提供的PHPUnit 4.5.1支持。
然后退出,没有任何错误消息。没有测试运行,没有错误消息。 浏览器测试运行良好,只有验收测试失败

我已经准备好解决这个问题,但我想为下次我或任何其他人遇到这个问题时创建一个记录

如果您的codeception在没有任何错误或失败消息的情况下退出,则表示您的代码中某处有错误。我在me Acceptance Helper文件中发现了错误,在该文件中我有一个函数的副本。函数在php中不能具有相同的名称,因此所有操作都会失败。但是codeception不会输出任何错误消息

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


测试代码中的某个地方有语法错误,找到并消除它,它就会工作。我敢打赌错误在AcceptanceHelper.php或浏览器中,或者任何适合的东西都不会运行测试。

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

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

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

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

在我的例子中,这是在Laravel5.5上运行codeception 4的问题,因此
symfony/service contracts
包中缺少类。使用composer安装此软件包已克服了“不可见”问题(尽管我最终不得不降级到composer 3,因为似乎没有兼容的symfony/Laravel 5.5/composer 4软件包)