是否存在区分Python集成测试和单元测试的约定?

时间:2013-03-26 14:14:07

标签: python unit-testing integration-testing

使用单元测试构建Python包的最常用方法如下:

package/
    __init__.py
    module_1.py
    module_2.py
    module_n.py
    test/
        __init__.py
        test_module_1.py
        test_module_2.py
        test_module_n.py

我想区分单元测试(方法和功能)和集成测试(使用整个包并可能涉及其他资源)。也许这些测试应该在不同的包中,具有不同的文件名,和/或包含某些文档字符串注释。

这样做是否有标准惯例?

2 个答案:

答案 0 :(得分:21)

在我们的项目中,我们在每个包中都有单元测试,与您的情况相同,集成测试,系统测试,作为顶层的单独包,即:

package_1/
  __init__.py
  module_1.py
  module_n.py
  test/
    __init__.py
    test_module_1.py
    test_module_n.py
package_n/
  __init__.py
  module_1.py
  module_n.py
  test/
    __init__.py
    test_module_1.py
    test_module_n.py
systemtest/
  __init__.py
  systemtest_1.py
  systemtest_n.py

即使你在项目中只有一个包,我也会使用这个约定。但是我不确定这是否是标准惯例。

答案 1 :(得分:0)

我刚刚为自己进行了研究,发现this suggestion很有帮助:

project/
│
├── my_app/
│   └── __init__.py
│
└── tests/
    |
    └── unit/
    |   ├── __init__.py
    |   └── test_sum.py
    |
    └── integration/
        |
        ├── example_data/
        |   ├── test_basic.json
        |   └── test_complex.json
        |
        ├── __init__.py
        └── test_integration.py