PHPUnit在使用覆盖率执行时未运行所有测试
我有一个测试套件,它有大约50个测试,每个测试都是测试通过promises实现的异步网络调用。当我运行PHPUnit时,它执行所有测试,并且每次都通过 但是当我使用覆盖率时,所有测试都不运行,第一个测试部分运行,脚本退出,没有生成覆盖率。有什么帮助吗 这是我的命令:PHPUnit在使用覆盖率执行时未运行所有测试,phpunit,Phpunit,我有一个测试套件,它有大约50个测试,每个测试都是测试通过promises实现的异步网络调用。当我运行PHPUnit时,它执行所有测试,并且每次都通过 但是当我使用覆盖率时,所有测试都不运行,第一个测试部分运行,脚本退出,没有生成覆盖率。有什么帮助吗 这是我的命令: phpunit --coverage-html ./coverage --debug --verbose tests/ 我的代码是这样的: class ClassToTest { function foo($callback)
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秒,脚本将崩溃。否,未启用严格模式。即使这样,我还是将小测试的时间限制(默认值)设置为一个非常高的值,但没有效果。