ウニ’s blog

勉強した結果を書いていきます

スクリプト実行ファイルのTestCase

pythonスクリプト実行部分をTestしたい。
例えば、sys.argvの切り分け処理部分をテストしたいときに使う。

コード

スクリプト実行ファイル

# hello.py
import sys

args = sys.argv

if len(args) > 1:
    print("Hello world.","args 1 : " + args[1])

テストファイル

import sys
import runpy
from unittest import TestCase

class ScriptTest(TestCase):
    saved_argv = []

    def setUp(self):
        self.saved_argv = sys.argv

    def tearDown(self):
        sys.argv = self.saved_argv

    def test_hello_module_normal(self):
        my_args = ["hello.py","wanwan"]
        sys.argv = my_args

        runpy.run_path("hello.py",run_name="__main__")

サンプルコード置き場

github.com

イマイチ

`argv`の渡し方がもっとなんとかなりそうな気もするが、分からず。
とりあえずこれで行こう。