簡體   English   中英

Python-Nosetest返回名稱* class *僅在多個文件中的一個文件上未定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM