如何在PHPUnit中将整个类封装在事务中?
我的想法是在每个测试类中指定参数,这取决于我们希望如何在事务中包装测试。我使用的是Laravel5.1如何在PHPUnit中将整个类封装在事务中?,php,laravel,unit-testing,phpunit,Php,Laravel,Unit Testing,Phpunit,我的想法是在每个测试类中指定参数,这取决于我们希望如何在事务中包装测试。我使用的是Laravel5.1 use DB; class TestCase { protected static $wrapMethodInTransaction = true; protected static $wrapClassInTransaction = false; /** * @beforeClass */ public static function
use DB;
class TestCase
{
protected static $wrapMethodInTransaction = true;
protected static $wrapClassInTransaction = false;
/**
* @beforeClass
*/
public static function isClassWrappedInTransactionBefore()
{
if (!static::$wrapMethodInTransaction && static::$wrapClassInTransaction) {
DB::beginTransaction();
}
}
/**
* @afterClass
*/
public static function isClassWrappedInTransactionAfter()
{
if (!static::$wrapMethodInTransaction && static::$wrapClassInTransaction) {
DB::rollback();
}
}
}
这种情况是,当应用程序尚未启动/已经死亡时,@beforeClass
&@afterClass
会触发,因此类DB
不可访问。我只想每个类运行这些方法一次,但当应用程序启动/尚未终止时。有什么解决办法吗
DatabaseTransactions
trait不起作用,因为它在setUp()
之后启动事务,并在tearDown()之后回滚它。拉威尔的“魔法”。我希望setUp()
处于事务中。您使用的是什么版本的Laravel?我使用的是Laravel 5.1您可能会发现这很有用