如何使用python3进行nosetests

时间:2014-04-01 07:21:14

标签: python nose

我尝试使用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?

4 个答案:

答案 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命令。