Pycharm - 没有发现任何测试?

oce*_*800 19 python unit-testing nose pycharm

我一直在接受

没有发现任何测试

Pycharm中的错误,我无法弄清楚为什么我会得到它...这就是我对我的看法point_test.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)
Run Code Online (Sandbox Code Playgroud)

而这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)
Run Code Online (Sandbox Code Playgroud)

我的运行配置有问题吗?我看了这篇 SO帖子,但我仍然感到困惑.我的运行配置目前看起来像这样:

在此输入图像描述

我想我只是明白我可能做错了什么?任何帮助将不胜感激,谢谢!

Jor*_*ley 28

为了识别测试函数,必须test_在您的情况下将它们命名xyCheck为test_xyCheck:

  • 呼应[Ilya的答案](/sf/answers/3037190551/),您还需要将测试文件命名为“test_...”,否则您无法从其目录运行测试 (12认同)

Ily*_*nov 21

我知道问题已经过去了一年多,但我遇到了同样的问题,而且该帖子是搜索中的第一个结果.

据我所知,PyCharm(或Intellij Idea Python插件)需要您的测试符合以下条件,如果您希望在目录中运行所有测试时启动它.

  1. 测试函数应以"test"开头(不需要下划线)
  2. 包含测试的文件也应以"test"开头."测试"(大写T在我的情况下不起作用

我正在使用Intellij IDEA 2016.3.5和Python插件

如果要使用命令行运行测试

python -m unittest
Run Code Online (Sandbox Code Playgroud)

然后你应该添加__init__.py到测试目录.Python仍然希望您的测试函数名称以"test"开头,并且您测试文件名以"test"开头,但是在文件的情况下,它并不关心第一个"t"是否为大写.TestCase和test_case同样没问题.

  • 对我来说,包含测试的文件必须以`test_`开头 (2认同)

inv*_*ame 7

不要在文件名中使用破折号(“-”)。这些文件在我的机器上被忽略。将它们从project-tests.py重命名为project_tests.py解决了问题。


小智 6

也可能导致此问题的一件事是,如果您没有在设置中选择正确的测试框架:

设置 > Python 集成工具 > 测试 > 默认测试运行器

我所有的测试都在 pytest 中,但它被设置为单元测试


Gra*_*eme 5

另一个刚刚咬我的陷阱。

我的测试包中有一个测试文件,test_queue.py它遵循上述所有建议,但是当我在 PyCharm 中选择“运行 UnitTests”时,控制台报告没有找到测试。

就我而言,问题是我在项目的根目录中有一个非单元测试文件,也称为test_queue.py该文件,该文件在项目早期用于其他目的而被遗忘。

尽管我在我的测试文件夹中专门选择了测试文件,并且路径设置为绝对指向文件的单元测试版本,但似乎正在使用项目根目录中的文件。

因此,还有一件事要检查,请确保您的项目中没有其他同名文件。