PHPUnit:使用@runTestsInSeparateProcesses 时找不到嘲弄
Posted
技术标签:
【中文标题】PHPUnit:使用@runTestsInSeparateProcesses 时找不到嘲弄【英文标题】:PHPUnit: Mockery not found when using @runTestsInSeparateProcesses 【发布时间】:2016-01-16 05:35:35 【问题描述】:我将 phpUnit 与 Mockery 一起使用,后者是我通过 composer 安装的:
"require-dev":
"mockery/mockery": "0.9.*"
,
现在,考虑以下测试用例
<?php
use Mockery as m;
class FooTest extends PHPUnit_Framework_TestCase
function testFoo()
m::mock('DateTime');
phpunit
运行良好。现在考虑以下几点:
use Mockery as m;
/**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
*/
class FooTest extends PHPUnit_Framework_TestCase
function testFoo()
m::mock('DateTime');
在这种情况下,我得到一个Class 'Mockery' not found
异常。
Mockery
未找到 - 实际上,/vendor
目录中没有找到任何内容,就好像作曲家自动加载完全搞砸了一样。 composer update
和 composer dump-autoload
我都跑过。
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Package Test Suite">
<directory suffix=".php">./tests/</directory>
</testsuite>
</testsuites>
</phpunit>
我使用的是 PHPUnit 3.7.10,我使用命令行 phpunit
运行测试,没有任何参数。
我该如何解决这个问题?
【问题讨论】:
您的确切命令行是什么?你的 phpunit.xml 中有什么? PHPUnit 安装在哪里?如果有的话,引导脚本中有什么? 嘿@Sven,查看编辑。 【参考方案1】:升级到 PHPUnit 4.x 为我解决了这个问题。
【讨论】:
以上是关于PHPUnit:使用@runTestsInSeparateProcesses 时找不到嘲弄的主要内容,如果未能解决你的问题,请参考以下文章
markdown [代码覆盖率Phpunit]安装Xdebug并使用Phpunit运行代码覆盖率#xdebug #phpunit #code #coverage