[英]Python - Nosetest returning name *class* not defined on only one file of many
我正在嘗試使用鼻子測試測試一組python文件,並遇到“ NameError:未定義名稱'句子'”(請注意,句子是我要在a文件中測試的類的名稱)。 對於其他正在測試的文件/類,我沒有收到此錯誤,並且似乎沒有任何循環依賴問題。
錯誤詳細信息在這里:
ex48 $ nosestests
......E
======================================================================
ERROR: Failure: NameError (name 'Sentence' is not defined)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "/usr/local/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/local/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/Users/valentinblehaut/LearnPyth/ex48/tests/parser_tests.py", line 6, in <module>
stest = Sentence()
NameError: name 'Sentence' is not defined
----------------------------------------------------------------------
Ran 7 tests in 0.007s
FAILED (errors=1)
這是我的文件夾結構以及測試(parser_tests.py)和已測試(parser.py)文件的參考:
資料夾結構:
+ ex48
+ bin
+ docs
- lexicon.py
- parser.py
- setup.py
+ tests
- __init__.py
- lexicon_tests.py
- parser_tests.py
parser.py文件:
class Sentence(object):
def __init__(self, subject, verb, object):
self.subject = subject[1]
self.verb = verb[1]
self.object = object[1]
parser.py的測試腳本:
from nose.tools import *
from parser import *
# first create an instance of Sentence class called stest
stest = Sentence()
def test_Sentence():
assert_equal(stest.subject, "Hi")
assert_equal(stest.verb, "Hello")
assert_equal(stest.object, "Howdy")
我也嘗試過僅測試parser.py與:
ex48 $ nostests parser.py
這將返回相同的NameError消息。
對於任何格式/約定錯誤,請提前致歉,敬請告知我以后需要解決的任何問題。
parser.py可能會與具有相同名稱的python包引起沖突,是否可以將parser.py替換為其他名稱並在測試腳本導入中進行更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.