Laravel 运行测试套件时是否重置自动增量(id)?

Laravel 运行测试套件时是否重置自动增量(id)?,laravel,phpunit,Laravel,Phpunit,假设我有这个测试: 类测试扩展了TestCase { 使用数据库; /**@测试*/ 公共功能测试\u id\u示例() { $courses=factory(Post::class,3)->create(); $this->assertEquals([1,2,3],$courses->pull('id')->toArray(); } /**@测试*/ 公共功能测试\u id\u示例\u 2() { $courses=factory(Post::class,4)->create(); $this

假设我有这个测试:

类测试扩展了TestCase
{
使用数据库;
/**@测试*/
公共功能测试\u id\u示例()
{
$courses=factory(Post::class,3)->create();
$this->assertEquals([1,2,3],$courses->pull('id')->toArray();
}
/**@测试*/
公共功能测试\u id\u示例\u 2()
{
$courses=factory(Post::class,4)->create();
$this->assertEquals([1,2,3,4],$courses->pull('id')->toArray();
}
}
当我一个接一个地运行测试时,它通过了。。 但是,当我运行整个测试文件时,会出现以下错误:

test::test_ids_example_2
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
 Array (
-    0 => 1
-    1 => 2
-    2 => 3
-    3 => 4
+    0 => 4
+    1 => 5
+    2 => 6
+    3 => 7
 )

因为即使我添加了“RefreshDatabase”特性,测试也不会重置自动增量“id”。如何解决这个问题?如何为每个测试保留id?

在每个测试方法之后,是否可以尝试手动调用refreshDatabase方法$这->refreshDatabase()@ErkanÖzkök仍然是相同的问题您使用的是什么测试数据库软件(MySQL、SQLite等等)?Laravel以不同的方式处理刷新操作。@AkenRoberts mysqls为什么要测试ID?我只是在想也许有一种不同的方式来实现你的目标。