我尝试使用nosetests
❯nosetests' / pathTo / test'
但它使用python 2.7
进行测试:
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
所以其中一些失败了,因为它们是用python 3.3
编写的。
我正在处理并安装虚拟环境:
pyvenv-3.3 py3env
激活它:
source ~/py3env/bin/activate
在虚拟环境中检查python virsion:
❯ python --version ⏎
Python 3.3.3
(py3env)
确定。
但即使在虚拟环境中,nosetest仍然使用python2.7
:
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
所以我的测试失败了。 如何让鼻子使用python3?
答案 0 :(得分:25)
在Python 3.4
及更高版本中:为了使用鼻子python3
,只需运行......
python3 -m "nose"
...在带有测试的目标目录中。
不需要环境设置。
答案 1 :(得分:2)
我找到了在没有环境的情况下使用python3进行nosetests的方法:
cd /Library/Frameworks/Python.framework/Versions/3.3/bin
然后:
❯ nosetests-3.3 '/folder/with/tests'
nosetests-3.3
使用python 3
那就是它。
如果您想要使用命令nosetests
而不是nosetests-3.3
,请添加~/.bash_profile
:
nosetests()
{
/Library/Frameworks/Python.framework/Versions/3.3/bin/nosetests-3.3 $1
}
现在你可以使用:
nosetests '/folder/with/tests'
来自任何目录。它使用python3
。
答案 2 :(得分:2)
安装:
sudo apt-get install python-nose python3-nose
运行:
nosetests-2.7 ; nosetests3
这将在PY2和PY3下运行测试套件。
答案 3 :(得分:0)
与Linux问题不同,这不是virtualenv问题。
这意味着,当您从终端使用命令nosetests
时,Linux会在此类可用文件的可用路径(/bin
,/sbin
或您自己使用的路径)内查找文件。
首先找到并执行您的全局python 2 nosetests
。
您的virtualenv python3 nosetests
稍后在可用路径列表中,因此从未到达。
我建议在每个虚拟环境中仅安装鼻子或任何其他python命令。