我有几个使用Anaconda创建的小心配置的
conda
环境。我编写了一个Python包,其中使用了这些环境中安装的某些软件包和库。现在,我想为每个环境运行测试,并为每个测试文件执行每个环境以确保该软件包能够处理不同的Python版本和可用的第三方软件包集。
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解释器来运行我的测试。
tox
的解决方案 :) - Alex Tereshenkov