鼻子无法找到在Ubuntu测试(Nose unable to find tests in ubunt

2019-07-18 21:39发布

是否有任何理由为什么鼻子将无法找到测试在Ubuntu 9.04?

我用鼻子0.11.1与蟒蛇2.5.4。
我可以运行测试,只有当我明确指定的文件名。 如果我不指定它只是说,0测试的文件名。

同样的项目运行测试在我的Mac很好,所以我很为难!

Answer 1:

有些什么关系,如果你正在运行测试过的目录即

nosetests ... tests/

其中,测试是我的测试文件夹的名称,并有单独的Python测试功能在的.py模块之一...您的功能必须要以“测试”为nosetests认识到,只要你想运行测试。

例如:

 def test_something():
    ...

当此目录而在执行nosetests将运行该功能

 def somethin_to_test():
    ...

不会。



Answer 2:

总是让我有其他的事情, nose是它不会运行可执行文件的测试。 我不知道是什么原因,这将使整个的Mac / Ubuntu的差异,但它是值得一试。

确保脚本没有某种方式得到chmod +x “在Mac上D和如果他们这么做,以解决他们chmod -x $(find tests/ -name '*.py')



Answer 3:

此行为是几乎可以肯定,因为你的文件不符合鼻子的测试匹配的行为而得名。 从鼻子文档 :

鼻子从Python源文件,目录和包装在其工作目录中自动收集测试(默认为当前工作目录)。 该testMatch正则表达式匹配任何蟒源文件,目录或包(默认情况下:(?:^ | [B _.-])[Tt的] EST)将被收集作为测试 (或源的测试集合)。

重点是我的。

一些示例的名字,将匹配:

  • TestFoo.py
  • Foo-Test.py
  • Foo_Test.py
  • Foo.Test.py(注意,这个人会尝试导入美孚,并抛出一个异常,如果它不能)

看起来像它会匹配,但实际上是一个名不:

  • FooTest.py

如果你只是重命名文件,你应该是好去。


更新 :我无法从你张贴的所有细节告诉,但也许你的测试目录缺少其__init__.py文件?

...确保您的“测试”目录实际上是模块(他们有一个空的__init__.py文件)。



Answer 4:

我有同样的问题。 我测试在Windows中运行得很好,但不是在Ubuntu。

在Ubuntu中,如果运行:

nosetests -vv --collect-only

您可能会看到它跳过你的测试文件,因为它是一个可执行文件:_Tools / LintControlFiles / test_HgLint.py 是可执行的; 跳过

为了让鼻子考虑可执行文件,运行它,就像这样:

nosetests --exe


Answer 5:

我可以证实,作为@大卫- wolever说,他们无法执行的Ubuntu上。 跑

nosetests -vv --collect-only 

看到哪些文件进行了检查全部细节。



Answer 6:

使用-all-modules ,它会发现所有的测试。

nosetests --all-modules ./tests



Answer 7:

通过鼻子的来源看后,特别是selector.py文件,如果你看看发生了什么,

https://github.com/nose-devs/nose/blob/master/nose/selector.py#L129

检查时,如果我们wantFileself.matches被调用,然后做一个regex对搜索match ,这就是你会传过来testMatch

出现此问题时,您再检查后下楼(和整个该文件),

https://github.com/nose-devs/nose/blob/master/nose/selector.py#L152

它再次运行非常相同类型的检查,对wantFunction

这意味着,如果你有你的包,你的容器pyfile,和你的实际测试类/函数的结构不同,你必须创建一个疯狂的复杂的正则表达式匹配,在每一个阶段。

对我来说,当我得知这一点,我选择了我的前缀包装,容器和测试功能与公共位,即

setests ├── __init__.py ├── setest_area1.py └──── def setest_someblock(): ...

然后我的nose命令的工作原理是,

nose --testMatch="setest"

这就筛选我希望它的工作方式。



文章来源: Nose unable to find tests in ubuntu
标签: python nose