我有一个测试,需要有关如何运行的说明。超越工作的目标是无所不能,指导手册应包含一个运行文件的命令,一个用于运行测试的命令。我的朋友说运行unittests不会要求文件在pythonpath上,因为它首先检查当前目录,但我得到:
import unittest
from ordoro_test.main import OrdoroETLMachine
class ETLMachineTests(unittest.TestCase):
def setUp(self):
self.api_url = 'https://9g9xhayrh5.execute-api.us-west-2.amazonaws.com/test/data'
self.headers = {'accept': 'application/json'}
def test_data_is_returned(self):
print(OrdoroETLMachine.get_email_data())
if __name__ == '__main__':
unittest.main()
cchilders:~/ordoro_test [master]$ python test.py
Traceback (most recent call last):
File "test.py", line 4, in <module>
from ordoro_test.main import OrdoroETLMachine
ImportError: No module named ordoro_test.main
cchilders:~/ordoro_test [master]$ ls -l
total 8
-rw-rw-r-- 1 cchilders cchilders 0 Mar 5 19:15 __init__.py
-rwxr-xr-x 1 cchilders cchilders 3099 Mar 5 20:12 main.py
-rwxr-xr-x 1 cchilders cchilders 441 Mar 5 20:19 test.py
如何以最简单的方式修复和允许导入?谢谢
我试试
from ordoro_test.assignment.main import OrdoroETLMachine
没有骰子
答案 0 :(得分:0)
在__init__.py
文件夹的一个级别添加空ordoro_test
个文件可以解决您的问题。
有关详细信息,请参阅Python 2.7, Modules section。
答案 1 :(得分:0)
使用显式相对导入from .main import OrdoroETLMachine
。 intra-package-references