gpt4 book ai didi

python - 单元测试如何导入它们测试的模块?

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:59 25 4
gpt4 key购买 nike

(Python 新手,Java 老手。)我遵循了 Python 项目设置的建议(详见此处:What is the best project structure for a Python application?)。

那么我的结构是:

artman
`-- artman
+-- artman.py
+-- util.py
`-- test
`-- util_test.py

...我的测试代码尝试导入要测试的 util.py 中的内容失败:

import unittest
import util # <------ Unresolved import: util

class UtilTest( unittest.TestCase ):
def testLookForArtmanRoot( self ):
util.lookForArtmanRoot( "." )

if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()

我确定这是一个简单的 Python 新手错误,但尽管使用谷歌搜索,我还是不知道是否必须修改 PYTHONPATH 或采用其他解决方案。

最佳答案

虽然这不是绝对必要的,但我会消除歧义directory/package/module 结构,这样你在学习的过程中,每一步的目的都会很清楚。

artman_dir
`-- artman_pkg
+-- __init__.py
+-- artman.py
+-- util.py
+-- test
`-- util_test.py
  • artman_dir 添加到您的 PYTHONPATH。
  • 将名为 __init__.py 的空文件添加到 artman_pkg

这两个步骤一起可以让您

import artman_pkg

来自任何 python 脚本。

然后你可以在util_test.py中导入util using an absolute import :

import artman_pkg.util as util

其余代码可以保持不变。

关于python - 单元测试如何导入它们测试的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27660952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com