代码之家  ›  专栏  ›  技术社区  ›  Calamity Jane

symfony 4:如何在kerneltestcase中加载数据设备

  •  0
  • Calamity Jane  · 技术社区  · 7 年前

    我设置了数据设备,可以通过控制台将其加载到我的测试数据库中。

    $ php bin/console doctrine:fixtures:load --env=test -n
    > purging database
    > loading App\DataFixtures\PropertyFixtures
    > loading App\DataFixtures\UserFixtures
    > loading App\DataFixtures\UserPropertyFixtures
    

    像一个chram一样工作

    但是,我已经失去了如何用我的服务单元测试自动加载这些设备,而不必在测试之前手动运行命令。一定还有别的办法!

    到目前为止,我发现的是使用旧版本symfony或测试控制器的描述。如果可以避免的话,谁想测试控制器呢?

    liip\functionaltestbundle似乎也只适用于Webtestcase,至少我没有看到扩展或替换常规kerneltestcase的方法。

    那么,有没有什么方法可以用我的测试类的setup()方法运行这个命令呢?

    有没有到symfony 4教程的链接?有服务的例子吗?我无法想象,我是唯一有这个问题的人。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Calamity Jane    7 年前

    <php>
        <ini name="error_reporting" value="-1" />
        <env name="KERNEL_CLASS" value="App\AppKernel" />
    

    public function boot()
    {
        parent::boot();
        $this->importDataFixtures();
    }
    
    /**
     * Loads the tests data for DataFixtures when we start phpUnit.
     */
    protected function importDataFixtures()
    {
        system('php /var/www/octopus/bin/console doctrine:fixtures:load --env=test -n');
    }