Python:不同于生产代码的文件夹中的单元测试?

时间:2017-10-07 15:24:47

标签: python unit-testing

我已经在StackOverflow上阅读了多篇文章和问题,并想知道为什么没有人在Python中使用以下结构进行单元测试:

MyProject/
    main/
        module1/
            my_file.py
    test/
        module1/
            test_my_file.py

我读过的是你:

  1. test_my_file.py放在与my_file.py相同的目录中:

    MyProject/
        module1/
            my_file.py
            test_my_file.py
    
  2. test_my_file.py放在与test相同的目录中名为my_file.py的目录中:

    MyProject/
        module1/
            my_file.py
            test/
                test_my_file.py
    
  3. 注意:

    1. 我来自Java世界:在生产代码的同一个地方使用单元测试代码对我来说很奇怪。
    2. 我对Python很陌生:可能有一些明显的原因我在这里失踪了。 (我的第一个猜测是它与模块有关)

1 个答案:

答案 0 :(得分:0)

也许是因为我在加入Python之前也编写了很多Java代码,但是我还在大多数Python项目中将测试保存在与生产代码不同的文件夹中。唯一的麻烦是,有时你必须弄乱PYTHONPATH或相对导入,以帮助测试找到导入的生产代码。

this project中,我在我的tox配置中设置PYTHONPATH

setenv = PYTHONPATH=plugin/PySrc
commands =
     py.test plugin/PySrc/ test/PySrc/ --cov-report term-missing --cov plugin/PySrc/
     coverage xml