如何使用 Doctrine Fixture 为 PHP 单元测试加载测试数据库?
How to use Doctrine Fixture to load test database for PHP unit testing?
我正在尝试设置一个数据库环境来测试我的 Doctrine ORM 实体 类,而不更改我的真实数据库。
我关注了 Symfony's documentation,但是当我 运行 php bin/console doctrine:fixtures:load
我收到警告:
Careful, database "graph" will be purged. Do you want to continue? (yes/no) [no]:
尽管我已经在我的 .env.test
文件中设置了一个环境变量:
DATABASE_URL=mysql://testUser:testPassword@127.0.0.1/graph_test
编辑:这里是整个 .env.test
文件:
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
# Database test
DATABASE_URL=mysql://testUser:testPassword@127.0.0.1/graph_test
我试图更改我的 test/bootstrap.php
文件,但我收到相同的警告。
有没有办法让 doctrine 从 .env.test
文件中获取 DATABASE_URL
值?任何帮助将不胜感激。
PS
不需要一个以上的测试.env文件。
原则测试包括 运行ning 迁移,以便每个测试在数据库中拥有相同的数据 运行。
从您发布的页面...
Resetting the Database Automatically Before each Test¶
这将导致消息Careful, database ... will be purged.
这是警告,不是错误。
当您要加载配置时,请确保它已在 .env.local 中定义,或者如果您使用的是 test
等自定义环境,请将 --env=test
参数添加到您的命令中
php bin/console doctrine:fixtures:load --env=test
php bin/console server:run --env=test
如果你使用php bin/console doctrine:fixtures:load --env=test
你只会影响你的测试数据库。
我正在尝试设置一个数据库环境来测试我的 Doctrine ORM 实体 类,而不更改我的真实数据库。
我关注了 Symfony's documentation,但是当我 运行 php bin/console doctrine:fixtures:load
我收到警告:
Careful, database "graph" will be purged. Do you want to continue? (yes/no) [no]:
尽管我已经在我的 .env.test
文件中设置了一个环境变量:
DATABASE_URL=mysql://testUser:testPassword@127.0.0.1/graph_test
编辑:这里是整个 .env.test
文件:
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
# Database test
DATABASE_URL=mysql://testUser:testPassword@127.0.0.1/graph_test
我试图更改我的 test/bootstrap.php
文件,但我收到相同的警告。
有没有办法让 doctrine 从 .env.test
文件中获取 DATABASE_URL
值?任何帮助将不胜感激。
PS 不需要一个以上的测试.env文件。
原则测试包括 运行ning 迁移,以便每个测试在数据库中拥有相同的数据 运行。
从您发布的页面...
Resetting the Database Automatically Before each Test¶
这将导致消息Careful, database ... will be purged.
这是警告,不是错误。
当您要加载配置时,请确保它已在 .env.local 中定义,或者如果您使用的是 test
等自定义环境,请将 --env=test
参数添加到您的命令中
php bin/console doctrine:fixtures:load --env=test
php bin/console server:run --env=test
如果你使用php bin/console doctrine:fixtures:load --env=test
你只会影响你的测试数据库。