Python Pycharm-未发现任何测试?
我得到了一份工作 没有发现任何测试 Pycharm中的错误,我不明白为什么我会得到它。。。这是我的Python Pycharm-未发现任何测试?,python,unit-testing,pycharm,nose,Python,Unit Testing,Pycharm,Nose,我得到了一份工作 没有发现任何测试 Pycharm中的错误,我不明白为什么我会得到它。。。这是我的点测试.py的内容: import unittest import sys import os sys.path.insert(0, os.path.abspath('..')) from ..point import Point class TestPoint(unittest.TestCase): def setUp(self): pass def xy
点测试.py的内容:
import unittest
import sys
import os
sys.path.insert(0, os.path.abspath('..'))
from ..point import Point
class TestPoint(unittest.TestCase):
def setUp(self):
pass
def xyCheck(self,x,y):
point = Point(x,y)
self.assertEqual(x,point.x)
self.assertEqual(y,point.y)
这是我要测试的point.py
:
import unittest
from .utils import check_coincident, shift_point
class Point(object):
def __init__(self,x,y,mark={}):
self.x = x
self.y = y
self.mark = mark
def patched_coincident(self,point2):
point1 = (self.x,self.y)
return check_coincident(point1,point2)
def patched_shift(self,x_shift,y_shift):
point = (self.x,self.y)
self.x,self,y = shift_point(point,x_shift,y_shift)
我的跑步配置有问题吗?我看了这么多帖子,但我还是完全糊涂了。我的运行配置当前如下所示:
我想我只是明白我可能做错了什么?任何帮助都将不胜感激,谢谢 为了识别测试函数,必须将它们命名为test
,在您的例子中,将xyCheck
重命名为test\xyCheck
:)您可能需要检查的另一个问题是,您是否在控制台输出中看到“#测试被'-k XXXX'取消选择”。这意味着您已经在运行/调试配置中添加了一个关键字,Pycharm将只运行名称包含该关键字的测试。我知道问题提出已经一年多了,但我也遇到了同样的问题,该帖子是搜索中的第一个结果
据我所知,如果您希望在目录中运行所有测试时启动PyCharm(或Intellij Idea Python插件),那么您的测试需要满足以下标准
测试函数应以“test”开头(不需要下划线)
包含测试的文件也应该以“test”开头。“测试”(大写“T”)在我的情况下不起作用
我正在使用Intellij IDEA 2016.3.5和Python插件
如果要使用命令行运行测试
python -m unittest
然后,您应该将\uuuuu init\uuuuuu.py
添加到测试目录中。Python仍然希望您的测试函数名以“test”开头,而您的测试文件名以“test”开头,但对于文件,它不在乎第一个“否”是不是大写。TestCase和test_case一样好。添加另一个答案,希望它能帮助其他人。我一直在解决这个问题,刚刚找到了答案(我想)。我最初从我的应用程序文件夹中删除了标准Django文件tests.py。我还创建了一个名为tests的项目子目录,其中包含单独的测试脚本。在这种情况下,Pycharm无法找到测试。我只需在我的应用程序文件夹中创建一个名为tests.py的空文件,即可更正此问题
因此:
确保在应用程序控制器中有一个名为tests.py的文件(可以是空文件)
在您的项目中,一个名为tests的文件夹似乎可以包含单独的测试脚本,Pycharm似乎可以找到并运行这些脚本
下面是一张为我工作的目录结构的图片:
不要在文件名中使用破折号(“-”)。这些文件在我的计算机上被忽略。将它们从project-tests.py重命名为project\u-tests.py解决了问题。另一个问题刚刚困扰了我
我的测试包中有一个名为test\u queue.py
的测试文件,它遵循了上述所有建议,但是当我在PyCharm中选择“Run UnitTests”时,控制台报告没有找到任何测试
在我的例子中,问题是我在项目的根目录中有一个非单元测试文件,也称为test\u queue.py
,它在项目早期被用于其他目的,但后来被遗忘了
尽管我特别选择了tests文件夹中的测试文件,并且路径设置为绝对指向该文件的单元测试版本,但似乎正在使用项目根目录中的文件
因此,还有一件事需要检查,确保您的项目中没有其他同名文件。我在PyCharm 2018.1中的Django 1.8项目中运行单个测试时遇到此异常。我可以同时运行所有测试,但一个文件中的单个测试崩溃
unittest的loader.py中发生异常
尝试导入test_admin_views.py时遇到导入错误,尽管异常隐藏了该错误的详细信息
为了查看ImportError的详细信息,我打开了一个Python控制台并运行:
import my_app.users.tests.test_admin_views
这给了我:
Traceback (most recent call last):
[...]
File "my_app/my_app/users/tests/model_factories.py", line 42, in <module>
from my_app.applications.tests.model_factories import ApplicationFactory
ImportError: cannot import name ApplicationFactory
成功了!如果在设置中没有选择正确的测试框架,也会导致此问题:
设置>Python集成工具>测试>默认测试运行程序
我所有的测试都在pytest中,但它被设置为单元测试命名你的函数test\uxy
…(可能吧?)(我刚刚注意到你在使用nosets)@JoranBeasley我觉得自己像个白痴,但这解决了问题谢谢!!谢谢,我从来没有注意到。对我来说,包含测试的文件必须以test\uuuuu
开头,我不知道甚至文件名也必须以“test”开头。这应该是公认的答案。+1谢谢,这解决了在PyCharmE中运行单元测试的问题选择什么,您还需要将测试文件命名为test…
,否则无法从其目录运行测试
from .model_factories import UserFactory, UserGroupFactory, ApplicationFactory