Pythonのunittest
モジュールは、テスト自動化、テストの集約、テストの独立性などをサポートしています。しかし、コマンドラインから引数を渡す方法については、明確なガイドラインがありません。
以下に、unittestで引数を扱う一般的な方法を示します。
import sys
import unittest
class MyTest(unittest.TestCase):
USERNAME = "default_username"
PASSWORD = "default_password"
def test_login(self):
print('username:', self.USERNAME)
print('password:', self.PASSWORD)
if __name__ == "__main__":
if len(sys.argv) > 1:
MyTest.USERNAME = sys.argv.pop()
MyTest.PASSWORD = sys.argv.pop()
unittest.main()
このスクリプトでは、コマンドラインからユーザ名とパスワードを受け取り、それらをテストケースの属性として設定しています。この方法では、unittest
の引数解析と競合することなく、コマンドライン引数をテストに渡すことができます。
ただし、この方法はテストの自動化には適していないかもしれません。テストは可能な限り独立して、外部の情報に依存しないようにするべきです。そのため、引数を必要とするテストケースでは、代わりにモックオブジェクトや設定ファイルを使用することを検討してみてください。