大家好!在介绍项目之前,我想先自我介绍一下。
我的名字是 Isac Andrei,来自罗马尼亚,目前我正在布加勒斯特理工大学完成计算机科学的学习。在最后一个学期,我在荷兰的格罗宁根大学学习,这让我体验到了国际学习的乐趣,因此我将在瑞士苏黎世的 ETH 大学继续我的硕士学习。
在我的学习过程中,我曾经作为 PHP 开发者工作了 1.5 年,并且做自由职业者,拥有自己的公司。我的热情是网页开发,我喜欢构建复杂系统,将多种技术和资源结合在一起,我把每一个组件看作是最终产品的基石。
我一直对参与有趣的项目感兴趣,我曾经开发了一个系统,帮助医生通过远程估算抑郁症患者的当前病情严重程度来监控他们(祝我在微软想象力杯世界总决赛好运 :) )。
项目介绍
该项目的主要目的是为新提交的 Joomla! 扩展代码获取早期反馈。通过创建一个可以运行 Joomla 测试的全功能环境,以便它们可以在一个并行(容器化)环境中运行,从而提高 PHP 和 Joomla! 版本的速度和覆盖率。这里的关键要求是速度,对新 PR 获取早期反馈至关重要。为了实现这一点,将同时在不同容器上运行互不依赖的测试。
项目的范围是将 Joomla! 链接扩展的现有测试集成到新的测试环境中。因此,需要使用预安装的 Joomla! 容器,以便能够快速运行测试。
预期结果是自动化测试环境,从其创建(通过运行带有 Joomla/PHP 组合的容器和测试 selenium 容器),到并行测试执行(通过协调并行测试运行并考虑它们的依赖关系)和报告(将错误发送回 GitHub)。
当前状态
到目前为止,我已经成功使用并改进了虚拟化仓库,以创建所需的测试环境
- MySQL
- 带有PHP 5.4、5.5、5.6、7.0、7.1和Joomla! 3.7(最新版本)、3.8(下一个版本,目前正在准备中)及预发布版本的PHP/Apache + Joomla!服务器容器。
我们决定使用Docker网络来建立Selenium容器和测试容器之间的连接。
关于实际运行的测试,我们需要让测试在不同的动态环境(不同的服务器)中独立运行。我已经开发出了运行单个任务的命令,现在我正在让它也能在特定服务器上运行。
个人参与GSoC的经验
到目前为止,一切都很棒。我已经和我的导师开了5次会。在项目的复杂性让我有些不知所措的初期阶段之后,我开始加快进度。事情开始步入正轨,我确实可以看到一些进展。导师们都很棒,我们就项目的某些决策进行了很好的讨论。
下一步
到目前为止已经讨论了两个对项目至关重要的主要决策。
- 容器间的通信
- Selenium容器:基于web服务的与基于bash的守护进程。
下一步将是决定Selenium容器的命运。
与此同时,我将继续按照项目的虚拟化部分常规进度进行,通过使用robo命令使Weblinks测试动态加载服务器URL。
之后,将为虚拟化仓库开发一个API,以远程创建测试环境。