Unit testing Yii2部署用于贡献

Unit testing Yii2部署用于贡献,unit-testing,deployment,yii2,Unit Testing,Deployment,Yii2,我是初学者Yii2贡献者。当我参与yiisoft/yii2项目时,很清楚如何部署该项目并运行其phpunit测试。但是我有一些关于使用扩展的问题: 首先,我添加了一个带有composer require的扩展。然后,git clone在我的主目录中使用相同的扩展名。之后,我将第一个目录替换为symlink,它指向第二个目录。这是非常方便的,因为我可以看到网站上的变化,但我不能再使用作曲家了 如何运行扩展的测试?它们通常依赖于Yii2应用程序类,但是 我应该指定一个配置文件吗?或者我应该独立运行这

我是初学者Yii2贡献者。当我参与yiisoft/yii2项目时,很清楚如何部署该项目并运行其phpunit测试。但是我有一些关于使用扩展的问题:

  • 首先,我添加了一个带有
    composer require
    的扩展。然后,
    git clone
    在我的主目录中使用相同的扩展名。之后,我将第一个目录替换为symlink,它指向第二个目录。这是非常方便的,因为我可以看到网站上的变化,但我不能再使用作曲家了

  • 如何运行扩展的测试?它们通常依赖于Yii2应用程序类,但是

  • 我应该指定一个配置文件吗?或者我应该独立运行这些测试 框架的内容


    那么,您能与我分享一下关于这种情况的最佳实践吗?

    您应该在框架之外运行这些测试。从扩展的角度来看,
    yiisoft/yii2
    是一个依赖项,应该安装在扩展目录中的
    vendor
    目录中。简而言之,您应该转到扩展目录并调用
    composer-install
    。在此之后,您应获得类似以下内容的目录结构:

    extension/
    ├── src/
    │   └── ...
    ├── vendor/
    │   ├── yiisoft/
    │   │   ├── yii2/
    │   │   └── ...
    │   └── ...
    ├──composer.json
    └── ...
    

    然后您可以直接从扩展目录运行测试(可能是通过
    vendor/bin/phpunit
    命令)。

    好的,现在已经很清楚了,但有点让我失望。你能说说第一个问题吗?通过符号链接访问源代码是个好主意吗?之后如何执行供应商更新?在工作过程中,有没有其他方法可以获得实时结果?在完美世界中,您根本不需要这样做-扩展应该是独立的,所有可能的场景都应该由单元测试覆盖。所以,不需要将扩展链接到您的应用程序来进行任何测试。但是,如果我真的需要在我的应用程序中测试一些补丁,我将添加指向我的fork的
    vcs
    存储库-通过这种方式,您可以同时使用git和composer的强大功能。有关更多详细信息,请参阅。
    $ vendor/bin/phpunit vendor/yiisoft/yii2-queue/tests/
    PHP Fatal error:  Class 'tests\TestCase' not found in /var/www/yii2.test/vendor/yiisoft/yii2-queue/tests/JobEventTest.php on line 22
    
    extension/
    ├── src/
    │   └── ...
    ├── vendor/
    │   ├── yiisoft/
    │   │   ├── yii2/
    │   │   └── ...
    │   └── ...
    ├──composer.json
    └── ...