Docker作曲
Docker Compose将为您提供一个可以在其上进行开发的容器。安装它按照这些说明.
有关docker-compose cli的更多信息,请参阅:https://docs.docker.com/compose/reference网站/.
要构建和运行容器,请使用以下命令:
./dev/docker-start.sh
启动所有容器后,您可以访问上的页面http://localhost:5000.要停止容器,请按Ctrl+C组合键
.
容器启动并运行后,运行此命令以填充容器中包含测试数据并创建新帐户:
docker-compose-f dev/docker-comose.yml exec web python3 dev-data.py--全部
然后,您可以使用任何创建的用户登录,例如:
流浪者
有关Vagrant的更详细介绍,请参阅https://fedoraproject.org/wiki/Vagrant.
Vagrantfile示例如下Vagrantfile示例
。要使用它,复制并安装Vagrant即可。Fedora须知:
cp-dev/Vagrantfile.example Vagrantfile(cp-dev/Wagrantfile)sudo dnf安装ansible libvirt流浪者libvirt流浪者sshfs流浪者主机管理器游荡起来
在Ubuntu上,直接安装Vagrant从网站然后运行以下命令:
cp-dev/Vagrantfile.example Vagrantfile(cp-dev/Wagrantfile)sudo add-apt-repository ppa:可用/可用sudo apt更新sudo apt安装ansible libvirt0 openssh-server qemu libvirt-bin ebtables dnsmasq libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-devvagrant插件安装vagrant-libvirt vagrant-sshfs vagrant-hostmanager
如果出现此错误synced_folders中的块:内部错误。无效:sshfs
,当你跑步时游荡起来
,您需要安装vagrant sshfs插件,可以通过以下方式完成:
vagrant插件安装vagrant--sshfs
然后:
游荡起来
默认值Vagrantfile文件
将端口从主机转发到来宾,这样您就可以像在您的主机。
注释
流浪汉酒店经理
将自动为您维护/etc/hosts,以便您可以使用主机名从主机访问开发环境,该主机名默认情况下为page-dev.example.com
。您可以选择不使用此只需不安装流浪汉酒店经理
插件,但如果您希望Pagure在UI中为git存储库提供有效的URL,您可以将需要调整访客上~/Pagure.cfg中的Pagure配置。
当游荡虚拟机启动并运行时,使用以下连接:
流浪者ssh
这将使您以用户身份登录到VM流浪者
它有几个别名预配置:
pstart#启动分页、工作线程和其他任务pstop#再次停止所有这些任务pstatus#显示页面状态
Vagrant页面没有自己的日志文件,请使用日志tl-如果
到显示页面输出。可以在页面配置文件中配置详细信息使用登录中
参数。
在容器中运行单元测试
要运行单元测试,可以使用具有所有所需依赖项的容器。
注释
通过执行的所有构建、测试和shell活动运行测试-容器.py
将自动记录。每个容器都有自己的dev/results_<测试容器名称>
文件夹,每次运行都会创建单独的以当前unix时间戳为前缀的文件。您应该不时清理此文件夹。
首先,您需要在工作站上安装podman和git:
sudo dnf安装podman git
使用以下命令对所有容器映像运行所有测试,如果系统上不存在这些映像,则将生成这些映像:
./dev/run-tests-container.py
如果希望在基于centos的容器上执行测试套件,请运行以下命令:
./dev/run-tests-container.py--中心
容器图像与要测试的页面源分离。因此,它们只有在不存在时才会自动生成。
应不时进行手动重建,以包括新的包版本。此外,如果您在pagure规范文件、tox配置或任何requirements.txt文件中进行任何更改,执行重建以确保您的更改将被考虑在内。
./dev/run-tests-container.py--重建#所有基本和代码容器./dev/run-tests-container.py--仅重建代码#代码容器
您还可以运行单个测试用例:
./dev/run-tests-container.py测试/test_pagure_flask_ui_priorities.py
或单个测试:
./dev/run-tests-container.py测试/test_pagure_flask_ui_priorities.py:PagureFlaskPrioritiestests.test_ticket_with_no_priority
你也可以得到运行测试-容器.py
帮助:
./dev/run-tests-container.py--帮助
默认情况下,对git repo和当前文件夹中的活动分支运行测试。要覆盖此行为并在fork中的远程开发分支上运行测试,请执行以下操作:
./dev/run-tests-container.py--报告https://pageure.io/forks网站/<用户名>/pagure.git--分支<要测试的分支的名称>
在毒物中进行单元测试
您可以使用毒物进行测试。这允许您在本地版本的代码上运行测试。
注释
这种运行测试的方式可以帮助您测试本地更改,但输出可能与集装箱测试不同。在推送之后,还要始终使用容器化测试检查您的分支。