我的想法是在每个测试类参数中指定,取决于我们如何在事务中包装测试。我使用Laravel 5.1。
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
特征不起作用,因为它在setUp()
之后启动事务并在tearDown()
之后回滚它。 Laravel的'魔力'。我希望setUp()
处于交易状态。