Pythonのunittestフレームワークを使用してテストを書く際、テストケースに引数を渡す方法が必要な場合があります。以下にその方法を示します。
コマンドライン引数の使用
コマンドラインから引数を渡す一つの方法は、sys.argv
を使用することです。以下にその例を示します。
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()
このコードでは、コマンドラインからユーザ名とパスワードを受け取り、それらをテストケースの属性として設定しています。そして、テストケース内でこれらの属性を使用しています。
環境変数の使用
別の方法として、環境変数を使用することも可能です。以下にその例を示します。
import os
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__":
MyTest.USERNAME = os.environ.get('TEST_USERNAME', MyTest.USERNAME)
MyTest.PASSWORD = os.environ.get('TEST_PASSWORD', MyTest.PASSWORD)
unittest.main()
このコードでは、環境変数TEST_USERNAME
とTEST_PASSWORD
からユーザ名とパスワードを取得し、それらをテストケースの属性として設定しています。そして、テストケース内でこれらの属性を使用しています。
これらの方法を使用することで、Pythonのunittestフレームワークを使用してテストケースに引数を渡すことが可能になります。ただし、テストケースは可能な限り独立しているべきであり、外部の情報に依存しないようにすることが推奨されています。