这个问题已被问了一百次,但我见过的每一个解决方案对我都不起作用,而且我非常沮丧,所以这就是101。
给出项目目录:
project/
src/
__init__.py
student.py
test/
__init__.py
student_test.py
我的student.py文件:
class Student:
def __init__(self, name, age):
self.full_name = name
self.age = age
我的student_test.py文件:
from nose.tools import *
import src
from src import Student
def test_basic():
print "I RAN!"
def test_student():
s = Student("Steve", 42)
assert s.age == 42
我收到以下错误:
======================================================================
ERROR: Failure: ImportError (cannot import name Student)
----------------------------------------------------------------------
from src import Student
ImportError: cannot import name Student
我尝试过导入yada yada的变体并将src
目录添加到路径中,但似乎没有任何效果。 WTF我做错了吗?
答案 0 :(得分:1)
如果您与此目录结构相关联,则可以使用以下解决方案来运行测试。
from nose.tools import *
import sys
sys.path.insert(0, '/Users/daino3/Workspace/student-project/src') # the absolute path of /src directory
from student import Student
def test_basic():
print "I RAN!"
def test_student():
s = Student("Steve", 42)
assert s.age == 42
test_basic()
test_student()
或者,将测试放在与源相同的目录中,然后只需from student import Student
。