我想创建一系列可以依次运行的测试,其思想是,如果在运行之前的测试不通过,那么所有套件都将不通过。
这听起来像反模式,但我需要测试用户流。
我尝试使用数据集,但每次运行测试时都会重新启动流。
我不确定我要分享的是不是你想要的。您必须使用@depends
,这将允许您在它所依赖的测试未通过时不运行测试。
这是关于它的官方文档。
这是一个例子:
public function test_user_is_saved()
{
// Test sending data to an endpoint stores the user
}
/**
* @depends test_user_is_saved
*/
public function test_error_is_thrown_on_invalid_input()
{
// Send invalid input (so validator fails)
}
如果test_user_is_saved
失败,则test_error_is_thrown_on_invalid_input
不会运行。您可以将此链接到任何测试。
谢谢!
在官方包的pr中进行了一些搜索后,我发现他们正在使用->depends(),因此现在我以这种方式实现。
的例子:
<?php
use AppUser;
it('is the first test', function () {
$this->user = factory(User::class)->make();
$this->assertTrue(true);
return true;
});
// If I remove this test, it works fine.
it('depends on the first test', function ($arg) {
$this->assertTrue($arg);
})->depends('it is the first test');
这是关于它的官方变更日志。