单个 python 文件的单元测试

Unit tests for a single python file

我有一个 python 脚本,其中包含主脚本和大量辅助方法。如何为这些都位于同一文件中的辅助方法编写单元测试。我在网上看到的很多例子都涉及创建助手库,然后导入和测试它。在我的例子中,它是一个文件。

示例结构:

/user/
  |-- pythonscript.py

我想为 pythonscript.py 编写测试。

样本pythonscript.py

def getSum(i ,j):
    return i+j

def main():
    summer = getSum(1,1)

if __name__ == '__main__':
    main()

例如,我想在另一个文件中为 getSum 之类的方法编写测试。 (我记得有一个测试器会筛选 .py 文件并根据附加 test__test 来识别需要测试的功能,但我似乎再也找不到它了。)

听起来您在描述 pytest, which can automatically discover tests 遵循特定的命名和路径约定。其中之一是将每个以 test 为前缀的函数视为测试。

对于您的方案,我建议您也在目录的根目录下创建一个名为 test_pythonscript.py 的文件。在该文件中,您可以从 pythonscript.py 导入函数,然后测试它们:

# test_pythonscript.py
from pythonscript import getSum

test_getSum():
    assert getSum(1, 2) == 3

一旦你安装了 pytest 作为依赖项,你就会 运行 pytest 在你的项目的根目录下,它应该能够发现上面的测试。