Python 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

我得到了一份工作

没有发现任何测试

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 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