Paizaの問題をunittestするテンプレート
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
imgs
old_ver
tools
README.md
sample_module.py
test_data.txt
uat_mymodule.py

README.md

UAT MyModule

ICON
Pythonのunittestのテンプレート。
標準入力、標準出力を使うmoduleへのUser Acceptance Test(受け入れテスト)をサポートする。

Description

『標準入力、標準出力使っているmodule』への受け入れテストを簡単に実行する。
例えばpizaのオンラインジャッジ問題など。

"moduleの標準出力結果"と"test_data.txtの期待値"とをassertEqualする。
"標準入力input()"は"test_data.txtの入力値"に適切に置き換えられ、実行される。

Demo

How to Use

Requirement

  • Python3
  • PyCharm(Recommend)

Usage

See Demo

  • テスト対象のmoduleがあるDirectoryへ、"uat_mymodule.py"と"test_data.txt"をコピーする。
  • "test_data.txt"に入力データと期待値を記入する
  • "uat_mymodule.py"を実行する

"test_data.txt" フォーマット

input()の内容  
:  
input()の内容  
(空行)  
期待値の標準出力結果  
(空行)

で一つのテストのペアとなります。
具体的には"test_data.txt"のサンプルを見て下さい。
説明1

複数のパラメータでテストを行う場合は、続けて上記のペアを記入して下さい。
説明2

注意

テスト対象はDirectoryに1個の状態にしてください。
具体的には下記のような3ファイル構成にして下さい。
パイソンファイルがいくつもあるととテスト実行しません。

./  
 (テスト対象module).py  
uat_mymodule.py    
test_data.txt      

VS.

###shell diffを使う diff <(python foo.py < IN.txt) OUT.txt thanks teamikl

###Qiita Posts 競技プログラミングのローカル環境での実行
paiza のような標準入出力を使うコーディングテストで制限時間ギリギリ使って解くための1つの方法
[.NET] 競技プログラミングで解いたプログラムをローカル環境でテストしたい時に便利な裏ワザ

Licence

MIT

Author

uni8inu