PHPUnit在使用覆盖率执行时未运行所有测试

PHPUnit在使用覆盖率执行时未运行所有测试,phpunit,Phpunit,我有一个测试套件,它有大约50个测试,每个测试都是测试通过promises实现的异步网络调用。当我运行PHPUnit时,它执行所有测试,并且每次都通过 但是当我使用覆盖率时,所有测试都不运行,第一个测试部分运行,脚本退出,没有生成覆盖率。有什么帮助吗 这是我的命令: phpunit --coverage-html ./coverage --debug --verbose tests/ 我的代码是这样的: class ClassToTest { function foo($callback)

我有一个测试套件,它有大约50个测试,每个测试都是测试通过promises实现的异步网络调用。当我运行PHPUnit时,它执行所有测试,并且每次都通过

但是当我使用覆盖率时,所有测试都不运行,第一个测试部分运行,脚本退出,没有生成覆盖率。有什么帮助吗

这是我的命令:

phpunit --coverage-html ./coverage --debug --verbose tests/
我的代码是这样的:

class ClassToTest
{
  function foo($callback)
  {
    //asynchronously do something, trigger callback when done.
  }
}

class Test
{
  function testFoo()
  {
    $count = 1;
    $obj->foo( new function() {
      $obj->foo( new function() {
        $obj->foo( new function() {
          $count = 0;
        });
      });
    });
    // check if $count == 0, exit. If not, then sleep for sometime and repeat.
  }
}
我使用的是PHP5.6.6

我试着用PHPStorm运行同样的东西,最后在它的控制台中得到了一个错误代码。它是这样说的:

Process finished with exit code -1073740940 (0xC0000374)

找不到对此错误的支持。谢谢你的帮助。谢谢。

如果启用了严格模式,您可能需要对测试进行注释

class MyTest extends PHPUnit_Framework_TestCase {
    /**
     * @large
     */
    public function testSomething(){
        // some test code here;
    }
}

如果还有人面临这个问题:我成功地在linux机器上运行了所有测试

我们可以看一个测试代码的例子吗?这与超时有关吗?我注意到这只发生在长时间运行的测试中。但是PHPUnit没有给出错误。它只是默默地完成了运行。我在php.ini中提高了max_execution_time=7200。但这没有帮助。可能另一个特定于PHPUnit的时间限制正在实施?您可以尝试使用PHPUnit--coverage html./coverage--debug--verbose tests/name_of_test.php之类的内容显式运行测试,也可以将所有其他测试移出目录。这将告诉我们它是否与特定的测试相关联。你有配置的phpunit.xml文件吗?是的,我试过了。这种情况发生在一些测试中。我发现只有在执行长时间运行的测试时才会发生这种故障。较短的测试运行良好并生成报告。但如果测试运行时间超过20-30秒,脚本将崩溃。否,未启用严格模式。即使这样,我还是将小测试的时间限制(默认值)设置为一个非常高的值,但没有效果。