害虫:Laravel中的顺序测试



我想创建一系列可以依次运行的测试,其思想是,如果在运行之前的测试不通过,那么所有套件都将不通过。

这听起来像反模式,但我需要测试用户流。

我尝试使用数据集,但每次运行测试时都会重新启动流。

我不确定我要分享的是不是你想要的。您必须使用@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');

这是关于它的官方变更日志。

相关内容

  • 没有找到相关文章

最新更新