我有一个应用程序,必须使用各种版本的特定包。 我想针对不同版本的软件包自动运行本地测试。
怎么做?
我可以想到一种手动方式:
composer update
更新
如上所述here,我可以在现有的composer.json上添加另一个版本:
composer require vendor/package:$(MY_PACKAGE_VERSION)
但是必须要小心,因为你正在搞乱应用程序的工作副本。由于ob-ivan建议在其他地方克隆应用程序,请提取新版本并在那里执行测试。
答案 0 :(得分:1)
受这个问题的启发,我已经为此目的开发了一个实用程序。
介绍DiversiTest:https://github.com/ob-ivan/diversitest
它在CI服务器中运行测试的主要优势在于它允许您在提交之前或甚至在编码之前测试正在进行的工作 - 例如,如果您不想制作在TTD流程中创建红色测试后显式提交。
按composer require ob-ivan/diversitest
添加如下配置文件:
# diversitest.yaml
package_manager: 'composer require $package $version'
test_runner: 'vendor/bin/phpunit'
packages:
illuminate/support:
- 5.4.*
- 5.5.*
运行:
vendor/bin/diversitest
这会将您的工作目录复制到一个临时文件夹,并循环安装依赖项版本并使用config提供的命令运行测试。
请注意,如果您列出几个包含版本列表的软件包,它将通过所有提供的package:version
对的笛卡尔产品。
该实用程序仍处于开发阶段,欢迎在GitHub问题页面上提供功能请求和错误报告。