我有以下目录结构:
.
├── Project
│ ├── __init__.py
│ ├── Project.py
└── tests
├── bootstrap.py
├── __init__.py
└── unit
└── test_utils.py
从项目的根目录开始,我正在运行$ python tests/bootstrap.py
,但收到错误ValueError: Attempted relative import beyond toplevel package
。
这是test_utils.py
。
import unittest
import sys
from ... Project.Project import *
class TestUtils (unittest.TestCase):
def test_file_changes (self):
# some_function lives in Project.py
var = some_function()
self.assertEqual(200, var)
bootstrap.py
文件没有任何特殊功能,只需加载测试。
import unittest
from unit.utils import TestUtils
def main ():
utils= unittest.TestLoader().loadTestsFromTestCase(TestUtils)
unittest.TestSuite([utils])
unittest.main(verbosity=2)
if __name__ == '__main__':
main()
有人能在这里看到问题吗?
答案 0 :(得分:4)
导入层次结构(从本地目录导入时),从目录中查看包和模块,运行程序,而不是导入文件位置。
请遵循以下规则:
test
目录在您的情况下,只需更改
from ... Project.Project import *
到
from Project.Project import *