tools - python unittest




鼻子無法在ubuntu中找到測試 (5)

總是讓我感到nose的另一件事是它不會在可執行文件中運行測試。 我不確定為什麼這會在Mac / Ubuntu上有所作為,但它值得一試。

確保腳本沒有以某種方式在Mac上獲得chmod +x x'd ...如果他們這樣做,請使用chmod -x $(find tests/ -name '*.py')修復它們。

是否有任何理由為什麼Nose無法在Ubuntu 9.04中找到測試?

我正在使用帶有python 2.5.4的鼻子0.11.1。
我只有在明確指定文件名時才能運行測試。 如果我沒有指定它只是說的文件名, 0測試

同樣的項目在我的Mac上運行測試很好,所以我很難過!


一些相關的,如果你正在運行目錄的測試,即

nosetests ... tests/

其中tests是我的測試文件夾的名稱,並且在其中一個.py模塊中有單獨的python測試函數...你的函數必須從'test'開始,以便測試你認為你想要運行的測試。

例如:

 def test_something():
    ...

nosetests將在此目錄中執行時運行此函數

 def somethin_to_test():
    ...

不會。


我可以確認,正如@ david-wolever所說,它們無法在Ubuntu上執行。 跑

nosetests -vv --collect-only 

查看檢查哪些文件的完整詳細信息。


我有同樣的問題。 我的測試在Windows中運行得很好,但在Ubuntu中沒有。

在Ubuntu中,如果你運行:

nosetests -vv --collect-only

你可能會看到它正在跳過你的測試文件,因為它是一個可執行文件:_Tools / LintControlFiles / test_HgLint.py 是可執行的; 跳過

為了讓鼻子考慮可執行文件,運行如下:

nosetests --exe

這種行為幾乎可以肯定是因為您的文件沒有根據nose的測試匹配行為命名。 從鼻子文檔

nose從其工作目錄中找到的python源文件,目錄和包中自動收集測試(默認為當前工作目錄)。 任何與testMatch正則表達式匹配的python源文件,目錄或包(默認情況下:(?:^ | [b _.-])[Tt] est)將被收集作為測試 (或測試集合的源)。

重點是我的。

一些匹配的示例名稱:

  • TestFoo.py
  • Foo-Test.py
  • Foo_Test.py
  • Foo.Test.py(請注意,這個會嘗試導入Foo,如果不能則會引發異常)

看起來匹配的名稱,但實際上不匹配:

  • FooTest.py

如果你只是重命名你的文件,你應該很高興。

更新 :我無法告訴您發布的詳細信息,但是您的測試目錄可能缺少__init__.py文件?

...確保你的“測試”目錄實際上是模塊(它們有一個空的__init__.py文件)。







nose