'MyTestClass' 的实例没有 'assertEqual' 成员 pylint(无成员)VScode

Instance of 'MyTestClass' has no 'assertEqual' member pylint (no-member) VScode

我正在尝试为 python 编程设置我的 VScode 环境(直到现在我一直用它来编写 C++ 代码)。我设置了非常简单的“Hello world”程序并为其编写了虚拟测试:

from problems.hello_world import HelloWorld

    class SimpleTest():
        def setUp(self):
            self.hello = HelloWorld()

        def test_dummy(self):
            self.assertEqual(True,False) 
      

这个测试是通过的,这是错误的,应该是失败的!但是我的 VScode 抱怨(在我调用 assertEqual 的最后一行) Instance of 'SimpleTest' has no 'assertEqual' member pylint (no-member).

它还在导入行中抱怨 Unable to import 'problems.hello_world'pylint(import-error) .

我的 python 二进制文件和 python 测试都在同一个名为问题的文件夹中。

我正在使用 bazel build 和 python 3.7 版本。我无法弄清楚我的 VScode python 设置有什么问题,或者是什么问题。在 C++ 环境下,它工作得很好。 在我的工作区 settings.json 我启用了 pylint,这是它的内容:

{
    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,

}

我的 settings.json 文件中只有两行。对于我的 C++ 程序,我使用单独的工作区(这可能是问题所在?)。 感谢您的帮助!

您必须实施 unittest.TestCase 的子 class,例如

from problems.hello_world import HelloWorld
from unittest import TestCase


class SimpleTest(TestCase):
    def setUp(self):
        self.hello = HelloWorld()

    def test_dummy(self):
        self.assertEqual(True,False) 

虽然 是正确的,但还有其他正确答案。关键是你用的是什么测试框架。

使用 unittest,它内置于 python。它有能力,但通常不用于现代 python 项目,因为还有其他选项可以提供更多 DRY 功能、更好的报告等。

pytest. It does not rely on subclassing or calling methods to perform assertions. Tests can be written as functions or direct subclasses of object. Assertions are done using the assert statement 内置了一个这样的测试框架 python。

def test_something():
    assert 1 != 2

class TestSomething:
    def test_a_thing(self):
        assert 1 == 1