下記を前提とします。記事作成時の手元のバージョンも一応書いておきます。
- Windows10
- VSCodeインストール済み(1.40.1)
- Windows版のPythonインストール済み(3.8.0)
- Python導入後のWindowsに右記もインストール済み⇒online-judge-tools
 
ゴール
Ctrl+Shift+Bでサンプルケースでのテスト実行できて、
Ctrl+Shift+Tで手入力でのテスト実行できる環境を作ります。
フォルダー構成
以下のようにしました。1問ごとに1ファイルとして、全部src以下に放り込みます。
work
│  cptest.bat
│  input.txt
│
├─.vscode
│      launch.json
│      settings.json
│      tasks.json
│
├─src
│      abc114_a.py
│
└─test
cptest.bat
@echo off
set problemname=%1
set testdir=test\%problemname%
set baseurl=%problemname:~0,-2%
set baseurlreplaced=%baseurl:_=-%
rem # log in
oj login -u username -p password "https://atcoder.jp/"
oj login --check "https://atcoder.jp/"
rem # make test directory
if not exist %testdir% (
  oj dl -d test/%problemname%/ https://atcoder.jp/contests/%baseurlreplaced%/tasks/%problemname%
)
oj test -c "python src/%problemname%.py" -d test/%problemname%/
説明
cptest.bat abc114_aのように引数を一つ与えて動かすバッチファイルです。
なお、cptest.bat ddcc2020_qual_aでも動くように無理やり変換処理を入れています。
oj login -uの行にあるusernameやpasswordは適切に変更してから使います。
最後の行ではpythonコマンドにパスが通っていることを前提に、ゴリゴリと実行して結果を標準出力に吐き出します。
input.txt
(標準入力として渡したい内容を書く)
説明
python xxxxx.py < input.txtのように使うテキストファイルです。
自前でテストしたい入力を気合で書きます。
launch.json
{
  // IntelliSense を使用して利用可能な属性を学べます。
  // 既存の属性の説明をホバーして表示します。
  // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "args": [
        "<",
        "input.txt"
      ]
    }
  ]
}
説明
F5でデバッガを走らせるための設定ファイルです。
以下は作り方:
.pyファイルを開いてから唐突にF5を押せばデバッグを開けます。
下記のような画面の「構成の追加」を押すとlaunch.jsonひな形が用意できます。

用意されたひな形にargsのあたりを記載してあげれば完成です。
tasks.json
{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "test_atcorder_sample",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "type": "shell",
      "command": "${workspaceFolder}/cptest.bat",
      "args": [
        "${fileBasenameNoExtension}"
      ],
      "problemMatcher": []
    },
    {
      "label": "test_manual_input",
      "group": {
        "kind": "test",
        "isDefault": true
      },
      "type": "shell",
      "command": "python",
      "args": [
        "${file}",
        "<",
        "input.txt"
      ]
    }
  ]
}
説明
Ctrl+Shift+B(ビルドタスク)やCtrl+Shift+T(テストタスク)を書いておく設定ファイルです。
以下は作り方:
.pyファイルを開いてから唐突にCtrl+Shift+Bを押せば下記のような画面が出てきてtasks.jsonのひな形が用意できます。

用意されたひな形をゴリゴリと編集しまくって完成です。
abc114_a.py
def main():
    x = int(input())
    ans = "NO"
    if (x == 7 or x == 5 or x == 3):
        ans = "YES"
    print(ans)
if __name__ == '__main__':
    main()
説明
[コンテスト名]_[問題名].pyとなるようにファイル名を気を付けます。
上記の場合、ABC114のA問題を解くコードを書きます。
運用
コンテストに合わせて、適切なファイル名の.pyファイルをsrc以下に作ります。
回答を作ったら、Ctrl+Shift+Bでサンプルケースの動作確認をして、よかったらそのまま提出します。
怪しい箇所に気が付いたらinput.txtを適宜変えつつ、F5やCtrl+Shift+Tでの動作確認しつつ修正して提出します。