dongwei1954 2018-07-22 15:46
浏览 13
已采纳

如何测试Symfony独立捆绑包

I have developped some bundles i.e. https://github.com/975L/EmailBundle and I want to add tests for them. So, I have created the file Tests/Service/EmailServiceTest.php that contains one test.

I have installed phpunit using sudo apt install phpunit on my Ubuntu computer, but when I cd to my bundle's folder and run phpunit I have the following error:

1) c975L\EmailBundle\Tests\Service\EmailServiceTest::testCreateEmailObject Error: Class 'c975L\EmailBundle\Service\EmailService' not found

It looks like the autoload can't find the class, even if declared at the top with use.

I saw some solutions over the web that requires to create a bootstrap.php with autoload but even with this, it doesn't work...

So my question is how do we test a standalone Symfony Bundle with phpunit?

  • 写回答

1条回答 默认 最新

  • donglugou6652 2018-07-22 16:07
    关注

    It is a good idea to install phpunit on a per project basis, as version differences could come up if you have multiple projects.

    (1) composer require phpunit/phpunit --dev

    I saw some solutions over the web that requires to create a bootstrap.php with autoload but even with this, it doesn't work...

    You can use composer's autoloader as a bootstrap. A custom bootstrap might come in handy in some cases, but not necessary.

    (2) Create a phpunit.xml.dist file, something like this (your current one does not specify a bootstrap):

    <?xml version="1.0" encoding="UTF-8"?>
    
    <phpunit bootstrap="./vendor/autoload.php">
    <testsuites>
        <testsuite name="MyBundle test suite">
            <directory suffix="Test.php">./Tests</directory>
        </testsuite>
    </testsuites>
    
    <filter>
        <whitelist>
            <directory>./</directory>
            <exclude>
                <directory>./Resources</directory>
                <directory>./Tests</directory>
                <directory>./vendor</directory>
            </exclude>
        </whitelist>
    </filter>
    </phpunit>
    

    Also check out vendor/bin/phpunit --generate-configuration which is nice.

    (3) Run vendor/bin/phpunit

    It should find the config file automatically, but you can also specify it with the --configuration option

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请提供一个符合要求的网页链接。
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码