如何 运行 Python 针对多个 Python conda 环境进行测试?
How to run Python tests against multiple Python conda environments?
我有一些使用 Anaconda 创建的精心配置的 conda
环境。我已经编写了一个 Python 包,它使用了安装在这些环境中的一些包和库。现在我想 运行 为每个环境执行每个测试文件的测试,以确保包可以处理不同的 Python 版本和不同的 3rd 方包集。
使用 tox
对我不起作用,因为它试图在本地重新创建这些环境以针对 运行 进行测试。这是我的 tox.ini
文件的样子:
[tox]
envlist = py36, py27
skipsdist = True
[testenv]
basepython =
py36: C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env1\python.exe
py27: C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env2\python.exe
commands =
{envpython} -m unittest discover
但是,不可能直接 pip install
进入 tox
在每个 运行 上创建的环境,主要是因为涉及一些已编译的库和解决方法(已解决在 conda
环境中 - 所以我必须按原样使用它们。
我目前有一个包含以下内容的虚拟 .bat
文件:
"C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env1\python.exe" -m unittest discover
"C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env2\python.exe" -m unittest discover
我在 Windows cmd
中执行以查看结果。它确实有效,但我想知道是否还有更多 Pythonic 方法来 运行 这些测试,例如使用 py.test
或 tox
。我不想重新创建我已有的 conda
环境;我只想使用在不同位置访问的不同 Python 解释器来 运行 我的测试。
您可以查看 pytest-xdist plugin。它允许您 运行 跨不同 python 环境进行测试。
用法:
pytest --dist=each --tx popen//python=python3.5 --tx popen//python=python2.7
我有一些使用 Anaconda 创建的精心配置的 conda
环境。我已经编写了一个 Python 包,它使用了安装在这些环境中的一些包和库。现在我想 运行 为每个环境执行每个测试文件的测试,以确保包可以处理不同的 Python 版本和不同的 3rd 方包集。
使用 tox
对我不起作用,因为它试图在本地重新创建这些环境以针对 运行 进行测试。这是我的 tox.ini
文件的样子:
[tox]
envlist = py36, py27
skipsdist = True
[testenv]
basepython =
py36: C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env1\python.exe
py27: C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env2\python.exe
commands =
{envpython} -m unittest discover
但是,不可能直接 pip install
进入 tox
在每个 运行 上创建的环境,主要是因为涉及一些已编译的库和解决方法(已解决在 conda
环境中 - 所以我必须按原样使用它们。
我目前有一个包含以下内容的虚拟 .bat
文件:
"C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env1\python.exe" -m unittest discover
"C:\Users\user\AppData\Local\Continuum\Anaconda2\envs\Env2\python.exe" -m unittest discover
我在 Windows cmd
中执行以查看结果。它确实有效,但我想知道是否还有更多 Pythonic 方法来 运行 这些测试,例如使用 py.test
或 tox
。我不想重新创建我已有的 conda
环境;我只想使用在不同位置访问的不同 Python 解释器来 运行 我的测试。
您可以查看 pytest-xdist plugin。它允许您 运行 跨不同 python 环境进行测试。
用法:
pytest --dist=each --tx popen//python=python3.5 --tx popen//python=python2.7