我很难尝试使用 PyCharm 来运行我的 Django 测试。
我过去很容易使用“python running configuration”,我使用manage.py
运行它们,我在OSX上使用python 2.7,Django< = 1.7,Pycharm< = 4。
现在我在Linux Mint上,我使用Python 3.4.3,Django 1.8.2和Pycharm 4.5。
我总是使用virtualenv来管理我的项目。
现在通过从Pycharm运行“manage.py test”,没有找到任何测试(它打印“Empty test suite”)。
但是测试存在,如果我从shell运行命令,它们就会被执行。
所以我真的不明白发生了什么。
我实际上能够使用我创建的“hack”启动测试,但问题是Pycharm无法附加到进程以允许测试中的断点(这是我最常用的功能之一!) 。
我的“黑客”如下:
我用:
创建了一个python脚本import subprocess
def main():
subprocess.call('./venv_activator.sh', shell=True)
if __name__ == '__main__':
main()
然后是bash脚本(venv_activator.sh
):
#!/usr/bin/env bash
source .ENV/bin/activate
python manage.py test myapp -p "*_tests.py" --noinput -v 2 --settings=settings.test
实际上,python脚本用于为Pycharm创建“python running configuration”,然后激活virtualenv并调用django test命令。
ps:是的,我在PyCharm中打开了“Django支持”(我在virtualenv下配置了python解释器)
答案 0 :(得分:6)
问题是PyCharm没有将测试文件的给定搜索模式应用(-p" * _ tests.py")。这是一个已经报告的错误:https://youtrack.jetbrains.com/issue/PY-15869
解决方案是简单地重命名我的文件:P
答案 1 :(得分:2)
使用pycharm,您可以通过创建测试配置直接运行测试。使用“运行”>“编辑配置”创建配置。从Django测试添加配置,设置虚拟环路径,工作目录(manage.py的路径),目标模块(如complete_project或complete_project.app_name)。 运行配置,它将从相应模块的tests.py运行测试。
答案 2 :(得分:0)
对于我的情况,这是因为我的测试方法的名称并不是以test
开头的。重命名它们,PyCharm开始正确运行它们。