VS Code Python unittest: тесты не обнаружены, даже если вы следуете учебнику - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь следовать руководству по Python согласно https://code.visualstudio.com/docs/python/unit-testing#_create-tests. Но каждый раз, когда тесты не обнаруживаются, и я не могу выполнить файл теста вручную: 0 тестов запущены.

the workspace structure and files content Я попытался сделать это на своем рабочем месте, а затем попытался начать все с нуля, но оба раза результаты были одинаковыми. Кроме того, я попытался использовать Remote - WSL на VS Code Insiders и классический VS Code:

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

    {
        "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 ]

1 голос
/ 03 мая 2019

Имена файлов и методов важны для обнаружения тестов.Если вы следуете руководству до буквы, это должно сработать.

Если вы хотите вместо этого использовать свой собственный код, попробуйте изменить default_number на test_default_number и basictest.py на test_basic.py.

0 голосов
/ 03 мая 2019

Чтобы наследовать класс, вы должны использовать метод 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...