即使是简单的Python模块,非常常见的目录结构似乎是将单元测试分成它们自己的test目录:
new_project/
antigravity/
antigravity.py
test/
test_antigravity.py
setup.py
etc.
Run Code Online (Sandbox Code Playgroud)
例如,看看这个Python项目如何.
我的问题是,实际运行测试的常用方法是什么?我怀疑这对除了我以外的所有人都是显而易见的,但你不能只是python test_antigravity.py从测试目录运行,因为import antigravity它将失败,因为模块不在路径上.
我知道我可以修改PYTHONPATH和其他搜索路径相关的技巧,但我不能相信这是最简单的方法 - 如果你是开发人员,那就没关系,但是如果他们只是想检查测试,那么期望用户使用是不现实的通过.
另一种选择只是将测试文件复制到另一个目录中,但它看起来有点愚蠢,并且忽略了将它们放在一个单独的目录中的重点.
那么,如果您刚刚将源代码下载到我的新项目中,您将如何运行单元测试?我更喜欢一个能让我对用户说的答案:"运行单元测试做X."
我正在努力找到解决我的代码运行的机器是big-endian还是little-endian的最佳方法.我有一个有效的解决方案(虽然我没有在大端机器上测试它)但它看起来有点笨重:
import struct
little_endian = (struct.pack('@h', 1) == struct.pack('<h', 1))
Run Code Online (Sandbox Code Playgroud)
这只是将"本机"双字节包与little-endian包进行比较.有更漂亮的方式吗?