【问题标题】:How to make nosetests use python3如何使鼻子测试使用python3
【发布时间】:2018-11-13 20:28:45
【问题描述】:

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

【问题讨论】:

  • 您是否使用虚拟环境中的鼻子测试?
  • 是的。我激活虚拟环境,然后在同一个控制台中使用鼻子。
  • 我会尝试使用您的 python 解释器手动运行~/py3env/bin/nosetests-script.py 并检查结果。
  • @Oleksiy 没有这样的文件或目录:~/py3env/bin/nosetests-script.py~/py3env/bin 具有以下结构:activate python python3 python3.3
  • 你在py3env中安装nose了吗?

标签: python nose


【解决方案1】:

Python 3.4 及更高版本中:为了使鼻子使用python3,只需运行...

python3 -m "nose"

... 在包含测试的目标目录中。

环境设置不是必需的。

【讨论】:

  • 这很方便,你知道如何传递参数吗? nosetests -e my-test?
  • @moreginger python3 -m nose -e my-test
  • pip3 install nose 首先确保它已实际安装。就我而言,这是必需的,因为安装了 python2 nose 而没有安装 python3。
【解决方案2】:

安装:

sudo apt-get install python-nose python3-nose

运行:

nosetests-2.7 ; nosetests3

这会在 PY2 和 PY3 下运行测试套件。

【讨论】:

  • 只能安装python3版本吗?然后像这样使用它:sudo apt install python3-nosenosetests3
  • 经过我的测试,可以只安装python3-nose版本,运行方式为:sudo apt install python3-nose && nosetests3
【解决方案3】:

我找到了在没有环境的情况下在 python3 中使用鼻子测试的方法:

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

【讨论】:

  • 或者,您可以链接nosetests-3.3:ln /Library/Frameworks/Python.framework/Versions/3.3/bin/nosetests-(version-number) /usr/local/bin/nosetests3
  • 最好使用"$@" 而不是$1。这样,您可以通过 所有 参数,保留引用,当引用指示应该是时抑制通配符,等等。
【解决方案4】:

这不是一个虚拟环境问题,而是一个 linux 问题。

这意味着当您从终端使用命令nosetests 时,linux 会在它的可用路径(/bin/sbin 或您自己的任何路径)中查找此类可执行文件。

首先找到并执行您的全局 python 2 nosetests

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

我建议每个虚拟环境只安装鼻子或任何其他 python 命令。

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 2014-01-19
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多