Интерактивный терминал в VSCode? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь упростить свою эффективность работы с VSCode.

Я хотел бы иметь возможность запускать скрипт, который включает команды input () в Терминале, и когда он запускается, чтобы иметь возможность немедленноначать взаимодействовать с программой.

Как таковой, я должен запустить программу, а затем нажать, чтобы взаимодействовать с ней.

Есть ли способ сделать это?Юпитер, кажется, не делает трюк ..

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, вы ищете для тестирования.Тестирование Python

Существует много способов получить автоматический ввод стандартного кода для вашего кода, но тот, который дает лучшие результаты (хотя это необычная практика для начинающих) - это модульное тестирование.Это работает так:

  1. Вы записываете свой код и делите его на функции (хотя вы можете сделать это в одной функции, но этого следует избегать).
  2. Вынаписать модульный тест, который посылает некоторые предварительно подготовленные аргументы в ваш код.
  3. Вы запускаете тест и проверяете, тогда как что-то не так.

Кстати, сам Python имеет библиотеку unittest, котораяоблегчает запуск такого рода тестов.Но для того, чтобы найти нужную вам функциональность (получить вещи в input()), требуется более продвинутая реализация библиотеки mock с помощью функции patch.

Давайте разберемся в коде:

App.py

def printName():
    return input("What's your name man?")

Test.py

from unittest.mock import patch

import app

@patch('builtins.input', lambda *args: 'Nolan')
def test_print_name():
    # The why we call args there is explained in the link bellow
    answer = app.printName() # Will call buitins.input inside it, but it's patched so don't worry about it
    assert answer == 'Nolan' # True, so no errors here

if __name__ == "__main__":
    test_query_y()

Этот код основан на этомответ

Вам не хватает многих возможностей из библиотеки unittest, поскольку вы не используете классы.Я имею в виду, вы можете использовать его как есть (хотя это может быть не очень хорошая практика).Поэтому я рекомендую вам узнать больше о lib: 3

...