我试图测试我的功能,但是每次我尝试运行phpunit时,它将删除表中的所有记录。我已经设置了phpunit.xml文件,仅在测试数据库中,就按照文档中的所有内容进行了操作,是否必须在我的计算机上设置sqlite,因为我没有该文件?还是什么 ?我只安装了laragon和phpmyadmin。
phpunit.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
</php>
</phpunit>
答案 0 :(得分:0)
请确保在测试类中使用DatabaseMigrations
特性。例如
use Illuminate\Foundation\Testing\DatabaseMigrations;
class SomeTest extends TestCase
{
use DatabaseMigrations;
/**
* A basic test example.
*
* @return void
*/
public function testSomething()
{
//some code
}
}
这会在设置时迁移您的数据,然后在测试结束时删除应用程序时,注册一个方向以回滚迁移。