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 2
nosetests

您的virtualenv python3
nosetests
位于可用路径列表的后面,因此从未到达


我建议每个虚拟环境只安装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
?@moreginger
python3-m nose-emy-test
pip3安装nose
,首先确保它已实际安装。在我的例子中,这是必需的,因为python2 nose是安装的,而python3不是。我只能安装python3版本吗?然后像这样使用:
sudo-apt-install-python3-nose
nosetests3
在我测试了这个之后,可以只安装
python3-nose
版本,运行方式为:
sudo-apt-install-python3-nose
&
nosetests3