我在 StackOverflow 上阅读了多篇文章和问题,并且想知道为什么没有人在 Python 中使用以下结构进行单元测试:
MyProject/
main/
module1/
my_file.py
test/
module1/
test_my_file.py
我读到的是你:
将
test_my_file.py
放在与my_file.py
相同的目录中:
MyProject/
module1/
my_file.py
test_my_file.py
将
test_my_file.py
放入与test
同一目录中名为my_file.py
的目录中:
MyProject/
module1/
my_file.py
test/
test_my_file.py
备注:
也许是因为我在使用 Python 之前也编写了很多 Java 代码,但在大多数 Python 项目中,我也将测试与生产代码放在单独的文件夹中。唯一的麻烦是,有时您必须使用
PYTHONPATH
或相对导入来帮助测试找到用于导入的生产代码。
在 这个项目中,我在我的 tox 配置中设置了
PYTHONPATH
。
setenv = PYTHONPATH=plugin/PySrc
commands =
py.test plugin/PySrc/ test/PySrc/ --cov-report term-missing --cov plugin/PySrc/
coverage xml
对于它的价值来说,
我也来自Java社区,我正在开始使用Python。我也有同样的问题。
我询问了三个不同的来源:
测试放入 test_*.py 或 *_test.py 形式的文件中,通常放置在包根目录中名为tests/的目录中。
在Python中,通常的做法是将测试分离到一个专用文件夹中,通常命名为tests或test,而不是将它们放在与生产代码相同的文件夹中。这有助于保持项目井井有条,并使管理和运行测试变得更加容易。
在 Python 中,测试的组织可能会根据项目和开发团队的偏好而有所不同。然而,通常的做法是将测试分离到专用文件夹中,类似于 Java 中的做法。这种方法有助于保持生产代码和测试代码的组织性,并使其更易于管理和维护。
结论:如果这符合您的团队规则或者您正在开发新项目,您可以继续将测试放在单独的文件夹中!