Python 如何使用蟒蛇进行鼻测试3
我尝试使用Python 如何使用蟒蛇进行鼻测试3,python,nose,Python,Nose,我尝试使用鼻测试 ❯ nosetests'/pathTo/test' 但它在我的测试中使用了python 2.7: sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0) 因此其中一些失败了,因为它们是用Python3.3编写的 我处理并安装了虚拟环境: pyvenv-3.3 py3env sys.version_info(major=2, minor=7, micro=5, releaselev
鼻测试
❯ nosetests'/pathTo/test'
但它在我的测试中使用了python 2.7
:
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
因此其中一些失败了,因为它们是用Python3.3
编写的
我处理并安装了虚拟环境:
pyvenv-3.3 py3env
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
激活它:
source ~/py3env/bin/activate
检查虚拟环境中的python病毒版本:
❯ python --version ⏎
Python 3.3.3
(py3env)
cd /Library/Frameworks/Python.framework/Versions/3.3/bin
嗯。
但即使在虚拟环境中,NoTest仍然使用python2.7
:
pyvenv-3.3 py3env
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
所以我的测试失败了。
如何让鼻子使用python3?我找到了在没有环境的情况下使用python3进行鼻子测试的方法:
❯ python --version ⏎
Python 3.3.3
(py3env)
cd /Library/Frameworks/Python.framework/Versions/3.3/bin
然后:
❯ nosetests-3.3 '/folder/with/tests'
nosetests-3.3
使用python3
就这样
如果您想使用命令nosetests
而不是nosetests-3.3
,请添加~/.bash\u profile
:
nosetests()
{
/Library/Frameworks/Python.framework/Versions/3.3/bin/nosetests-3.3 $1
}
现在您可以使用:
nosetests '/folder/with/tests'
从任何目录。它在python3.4
和更高版本中使用python3
:为了让nose使用python3
只需运行
python3 -m "nose"
。。。在包含测试的目标目录中
不需要环境设置。要安装:
sudo-apt-get-install-python-nose-python3-nose
要运行:
nosetests-2.7;nosetests3
这将在PY2和PY3下运行测试套件。这不是virtualenv问题,而是linux问题
这意味着,当您从终端使用命令nosetests
时,linux会在它的可用路径(/bin
、/sbin
,或由您指定的任何路径)中查找此类可执行文件
首先找到并执行全局python 2nosetests
您的virtualenv python3nosetests
位于可用路径列表的后面,因此从未到达
我建议每个虚拟环境只安装nose或任何其他python命令。您是否使用虚拟环境中的nosetests?是的。我激活虚拟环境,然后在同一控制台中使用nose。我将尝试使用python解释器手动运行~/py3env/bin/nosets script.py
,并检查结果。@Oleksiy没有这样的文件或目录:~/py3env/bin/nosetests script.py
~/py3env/bin
具有以下结构:激活python3 python3.3
您在py3env中安装了nose吗?或者,您可以链接nosetests-3.3:ln/Library/Frameworks/python.framework/Versions/3.3/bin/nosetests-(版本号)/usr/local/bin/nosetests3
更好地使用“$@”
而不是$1
。通过这种方式传递所有参数,保留引号,当引号表示应该引用时,禁止使用globbing,等等。这很方便,你知道如何传递参数吗,例如nosetests-emy-test
?@moregingerpython3-m nose-emy-test
pip3安装nose
,首先确保它已实际安装。在我的例子中,这是必需的,因为python2 nose是安装的,而python3不是。我只能安装python3版本吗?然后像这样使用:sudo-apt-install-python3-nose
nosetests3
在我测试了这个之后,可以只安装python3-nose
版本,运行方式为:sudo-apt-install-python3-nose
&nosetests3