VS Code Python单元测试:即使按照教程进行,也未找到测试

时间:2019-05-03 11:55:19

标签: python visual-studio-code

我正在尝试按照https://code.visualstudio.com/docs/python/unit-testing#_create-tests的要求使用Python教程。但是每次都没有发现测试,我也不能手动执行测试文件:运行0个测试。

the workspace structure and files content 我尝试在工作的工作区上执行此操作,然后尝试从头开始进行所有操作,但是两次结果都相同。另外,我尝试在VS Code Insiders和经典VS Code上使用Remote-WSL:

Version: 1.34.0-insider (user setup)
Commit: 473af338e1bd9ad4d9853933da1cd9d5d9e07dc9
Date: 2019-05-01T00:22:05.899Z
Electron: 3.1.8
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17134

Version: 1.33.1 (user setup)
Commit: 51b0b28134d51361cf996d2f0a1c698247aeabd8
Date: 2019-04-11T08:27:14.102Z
Electron: 3.1.6
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17134

basic.py


    def just_method(number):
        return number

    if __name__ == "__main__":
        print just_method(42)

basictest.py

    import unittest
    import basic

    class MyBasicTests(unittest.TestCase):

        def default_number(self):
            number = 42
            self.assertEqual(basic.just_method(number), number)

    if __name__ == "__main__":
        unittest.main()

settings.json 内容:

    {
        "python.testing.unittestArgs": [
            "-v",
            "-s",
            ".",
            "-p",
            "*test.py"
        ],
        "python.testing.pyTestEnabled": false,
        "python.testing.nosetestsEnabled": false,
        "python.testing.unittestEnabled": true,
        "python.pythonPath": "/usr/bin/python"
    }

能帮您找出问题所在吗?我很确定它位于我身边的某个地方。

2 个答案:

答案 0 :(得分:1)

文件名和方法名对于测试发现很重要。如果您按照教程中的字母操作,那应该可以。

如果您想使用自己的代码,请尝试将default_number更改为test_default_number,并将basictest.py更改为test_basic.py

答案 1 :(得分:0)

要继承一个类,必须使用super()方法。

class ChildClass(ParentClass):
    def __init__(self, *args): # '*args' for arguments to this class
        super().__init__(self, *args) # '*args' for arguments to pass in the parent class's __init__ method

在您的情况下:

# put imports here
class MyBasicTests(unittest.TestCase):
    def __init__(self):
        super().__init__()
    def test_this(self):
        number = 20
        self.assertEqual(number, basic.just_method(number))