管理测试自动化的 Python 和 Python 包版本
Managing Python and Python package versions for Test Automation
各位,
我计划使用 Python 和各种 python 包,如机器人框架、appium、selenium 等来进行测试自动化。但众所周知,python 和所有软件包版本都在不断更新。
如果我们选择所有这些的一个版本作为开始,并且随着这些包的更新,建议采用什么过程来使开发环境与最新版本保持同步?
感谢一些指导。
谢谢。
如果您使用给定版本的库编写代码,除非您打算使用新功能,否则将来更新该库更有可能破坏您的代码而不是使它变得更好运行 .大多数时候,除非您想更改代码以使用新玩具,否则最好坚持使用编写代码时使用的版本。
为了确保在新机器上加载程序时安装每个库的正确版本,您需要一个 requirements.txt
文档。制作其中一个很容易。你所要做的就是在虚拟环境中构建你的程序(例如 conda create -n newenv
conda activate newenv
)只安装你的程序所需的库,然后,一旦你的所有依赖项都安装完毕,在你的终端中输入 pip freeze > requirements.txt
。这会将所有依赖项及其版本信息放入文本文档中。当您想在新机器上使用该程序时,只需将 pip install -r requirements.txt
合并到程序的加载过程中即可。
如果您使用 docker
之类的方式将其容器化,您的 requirements.txt
依赖项可以在创建容器时自动安装。如果您想使用新的库或库版本,只需在您的 requirements.txt
中更新它,然后 boom,您就是最新的。
在这种情况下,您可能希望使用虚拟环境隔离您的包(以及它所依赖的外部 packages/versions)。可以将虚拟环境视为一个跟踪您正在导入的特定包版本的文件。因此你可以在你的系统上安装最新的包,但是你的项目仍然只会在你的虚拟环境中导入版本。
各位,
我计划使用 Python 和各种 python 包,如机器人框架、appium、selenium 等来进行测试自动化。但众所周知,python 和所有软件包版本都在不断更新。
如果我们选择所有这些的一个版本作为开始,并且随着这些包的更新,建议采用什么过程来使开发环境与最新版本保持同步?
感谢一些指导。
谢谢。
如果您使用给定版本的库编写代码,除非您打算使用新功能,否则将来更新该库更有可能破坏您的代码而不是使它变得更好运行 .大多数时候,除非您想更改代码以使用新玩具,否则最好坚持使用编写代码时使用的版本。
为了确保在新机器上加载程序时安装每个库的正确版本,您需要一个 requirements.txt
文档。制作其中一个很容易。你所要做的就是在虚拟环境中构建你的程序(例如 conda create -n newenv
conda activate newenv
)只安装你的程序所需的库,然后,一旦你的所有依赖项都安装完毕,在你的终端中输入 pip freeze > requirements.txt
。这会将所有依赖项及其版本信息放入文本文档中。当您想在新机器上使用该程序时,只需将 pip install -r requirements.txt
合并到程序的加载过程中即可。
如果您使用 docker
之类的方式将其容器化,您的 requirements.txt
依赖项可以在创建容器时自动安装。如果您想使用新的库或库版本,只需在您的 requirements.txt
中更新它,然后 boom,您就是最新的。
在这种情况下,您可能希望使用虚拟环境隔离您的包(以及它所依赖的外部 packages/versions)。可以将虚拟环境视为一个跟踪您正在导入的特定包版本的文件。因此你可以在你的系统上安装最新的包,但是你的项目仍然只会在你的虚拟环境中导入版本。