我像这样在IntelliJ IDEA(或PyCharm)中设置我的项目:
project_root
+ src
+ business
- production_code.py (has a random class I want to test)
+ test
+ business
- test_production_code.py (using unittest module)
我尝试了在网上找到的多个解决方案,但不幸的是,这些解决方案都不允许我在test
目录及其子目录中运行all测试,而无需在所有位置添加__init__.py
(我想避免这种情况),更改源或更改已配置的目录结构。
请注意,使用pytest
实际上允许我find所有测试并运行它们,但是导入失败。似乎无法从src
目录中找到test
中的所有类/模块-我猜是因为默认情况下src
未添加到测试路径中。
还请注意,我的测试可以在IDE上正常运行,但是我注意到IntelliJ似乎以某种方式将src
目录添加到了路径,因此这可能就是它起作用的原因。
${PWD##*/}
替换脚本中的project_root
)在单独
(不是Pycharm)终端中运行这些命令: $ cd project_root
$ pyenv virtualenv 3.8.0 ${PWD##*/}
$ pyenv local ${PWD##*/}
在Pycharm中-设置-项目
:将项目解释器设置为
~~ .pyenv / versions / project_root / bin / python3.8
在Pycharm]中> -设置-工具-Python集成工具
src
)标记为business
的子文件夹为source root],并在这些文件夹中包含
conftest.py
文件。 从Pycharm终端(或从Project_root输入单独的)中输入pytest
将在test
中运行所有测试,并且将在src
子文件夹中找到源,而不必在src子文件夹中添加__init__.py
文件。当我使用以下命令创建virtualenv时,此方法不起作用:$ python3 -m venv venv && . venv/bin/activate