pythonのsetUp,setUpClass,およびsetUpModuleの違い
123644 ワード
デポジットプラスマイナス乗除関数
1.setUp各テストケースが実行される前に実行される
2.setUpClassは各テストクラスが実行される前に実行する
3.setuUpMidule各テストクラスが開いてファイルを閉じる問題を解決するすべてのテストクラスは呼び出す前に一度実行され、関数名は固定書き方で、unittestフレームワークによって自動的に識別される
class MathOperation:
"""
"""
def __init__(self,first_num,second_num):
self.first_num,self.second_num = first_num,second_num
def add(self):
return self.first_num + self.second_num
def minus(self):
return self.first_num - self.second_num
def multiply(self):
return self.first_num * self.second_num
def divide(self):
try:
return round(self.first_num/self.second_num,2)
except ZeroDivisionError:
return " 0 "
1.setUp各テストケースが実行される前に実行される
#
import unittest
import inspect
#
from lin.math_operation import MathOperation as MathOper
class TestMulti(unittest.TestCase):
"""
"""
def setUp(self):
"""
:return:
"""
print("{:=^40s}".format(" "))
self.file_name = "record_run_result1.txt"
self.file = open(self.file_name,mode="a",encoding="utf-8")
self.file.write("{:=^40s}
".format(" "))
def tearDown(self):
"""
:return:
"""
print("{:=^40s}
".format(" "))
self.file.write("{:=^40s}
".format(" "))
self.file.close()
def test_two_neg_multi(self):
"""
1.
:return:
"""
# #
# file_name = "record_run_result.txt"
# print(" [{}] ".format(file_name))
# file = open(file_name,mode="a",encoding="utf-8") #
# self.file.write("{:=^40s}
".format(" "))
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(-3,-4).multiply()
#
expect_result = 12
#
msg = " "
try:
self.assertEqual(expect_result,real_result,msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg,"Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
# finally:
# # ,(" [{}] ".format(file_name))
# file.write("{:=^40s}
".format(" "))
# file.close()
def test_neg_pos_multi(self):
"""
2.
:return:
"""
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(-3,4).multiply()
#
expect_result = -12
#
msg=" "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg, "Pass"))
def test_two_pos_multi(self):
"""
:return:
"""
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(3,4).multiply()
#
expect_result = 12
#
msg=" "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg, "Pass"))
def test_zero_multi(self):
"""
4. 0
:return:
"""
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(0,0).multiply()
#
expect_result = 0
#
msg=" 0 "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg, "Pass"))
class TestDivide(unittest.TestCase):
"""
"""
def setUp(self):
"""
:return:
"""
self.file_name = "record_run_result1.txt"
self.file = open(self.file_name,mode="a",encoding="utf-8")
self.file.write("{:=^40s}
".format(" "))
def tearDown(self):
"""
:return:
"""
self.file.write("{:=^40s}
".format(" "))
self.file.close()
def test_two_neg_divi(self):
"""
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
#
real_result = MathOper(8,4).divide()
#
except_result = 2
msg = " "
try:
self.assertEqual(except_result,real_result,msg=msg)
except AssertionError as e:
self.file.write("{}, :{},
{}
".format(msg,"Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
def test_neg_pos_divi(self):
"""
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(8,-2).divide()
except_result = -4
msg = " "
try:
self.assertEqual(except_result,real_result,msg=msg)
except AssertionError as e:
self.file.write("{}, :{}
, {}
".format(msg,"Fail",e))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
def test_two_pos_divi(self):
"""
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(-8,-2).divide()
except_result = 4
msg = " "
try:
self.assertEqual(except_result,real_result,msg)
except AssertionError as e:
self.file.write("{}, :{}
{}
".format(msg,"Fali",e))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
def test_zero_divi(self):
"""
0
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(8,0).divide()
except_result = " 0 "
msg=" 0 "
try:
self.assertEqual(except_result,real_result,msg)
except AssertionError as e:
self.file.write("{}, :{}
{}
".format(msg,"Fail",e))
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
if __name__ == '__main__':
unittest.main()
2.setUpClassは各テストクラスが実行される前に実行する
#
import unittest
import inspect
#
from lin.math_operation import MathOperation as MathOper
class TestMulti(unittest.TestCase):
"""
"""
@classmethod
def setUpClass(cls):
"""
:return:
"""
cls.file_name = "record_run_result1.txt"
cls.file = open(cls.file_name,mode="a",encoding="utf-8")
cls.file.write("{:=^40s}
".format(" "))
# def setUp(self):
# """
#
#
# :return:
# """
# print("{:=^40s}".format(" "))
# self.file_name = "record_run_result1.txt"
# self.file = open(self.file_name,mode="a",encoding="utf-8")
# self.file.write("{:=^40s}
".format(" "))
@classmethod
def tearDownClass(cls):
"""
:return:
"""
cls.file.write("{:=^40s}
".format(" "))
cls.file.close()
# def tearDown(self):
# """
#
# :return:
# """
# print("{:=^40s}
".format(" "))
# self.file.write("{:=^40s}
".format(" "))
# self.file.close()
def test_two_neg_multi(self):
"""
1.
:return:
"""
# #
# file_name = "record_run_result.txt"
# print(" [{}] ".format(file_name))
# file = open(file_name,mode="a",encoding="utf-8") #
# self.file.write("{:=^40s}
".format(" "))
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(-3,-4).multiply()
#
expect_result = 12
#
msg = " "
try:
self.assertEqual(expect_result,real_result,msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg,"Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
# finally:
# # ,(" [{}] ".format(file_name))
# file.write("{:=^40s}
".format(" "))
# file.close()
def test_neg_pos_multi(self):
"""
2.
:return:
"""
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(-3,4).multiply()
#
expect_result = -12
#
msg=" "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg, "Pass"))
def test_two_pos_multi(self):
"""
:return:
"""
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(3,4).multiply()
#
expect_result = 12
#
msg=" "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg, "Pass"))
def test_zero_multi(self):
"""
4. 0
:return:
"""
#
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(0,0).multiply()
#
expect_result = 0
#
msg=" 0 "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
self.file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
self.file.write("{}, :{}
".format(msg, "Pass"))
class TestDivide(unittest.TestCase):
"""
"""
@classmethod
def setUpClass(cls):
"""
:return:
"""
cls.file_name = "record_run_result1.txt"
cls.file = open(cls.file_name, mode="a", encoding="utf-8")
cls.file.write("{:=^40s}
".format(" "))
@classmethod
def tearDownClass(cls):
"""
:return:
"""
cls.file.write("{:=^40s}
".format(" "))
cls.file.close()
# def setUp(self):
# """
#
#
# :return:
# """
# self.file_name = "record_run_result1.txt"
# self.file = open(self.file_name,mode="a",encoding="utf-8")
# self.file.write("{:=^40s}
".format(" "))
#
# def tearDown(self):
# """
#
# :return:
# """
# self.file.write("{:=^40s}
".format(" "))
# self.file.close()
def test_two_neg_divi(self):
"""
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
#
real_result = MathOper(8,4).divide()
#
except_result = 2
msg = " "
try:
self.assertEqual(except_result,real_result,msg=msg)
except AssertionError as e:
self.file.write("{}, :{},
{}
".format(msg,"Fail",e))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
def test_neg_pos_divi(self):
"""
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(8,-2).divide()
except_result = -4
msg = " "
try:
self.assertEqual(except_result,real_result,msg=msg)
except AssertionError as e:
self.file.write("{}, :{}
, {}
".format(msg,"Fail",e))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
def test_two_pos_divi(self):
"""
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(-8,-2).divide()
except_result = -4
msg = " "
try:
self.assertEqual(except_result,real_result,msg)
except AssertionError as e:
print(e)
self.file.write("{}, :{}
{}
".format(msg,"Fali",e))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
def test_zero_divi(self):
"""
0
:return:
"""
self.file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(8,0).divide()
except_result = " 0 "
msg=" 0 "
try:
self.assertEqual(except_result,real_result,msg)
except AssertionError as e:
self.file.write("{}, :{}
{}
".format(msg,"Fail",e))
raise e
else:
self.file.write("{}, :{}
".format(msg,"Pass"))
if __name__ == '__main__':
unittest.main()
3.setuUpMidule各テストクラスが開いてファイルを閉じる問題を解決するすべてのテストクラスは呼び出す前に一度実行され、関数名は固定書き方で、unittestフレームワークによって自動的に識別される
# ,
# def setUpModule def tearDownModule
#
import unittest
import inspect
#
from lin.math_operation import MathOperation as MathOper
def setUpModule():
"""
, , unittest
:return:
"""
global file_name
global file
file_name = "record_run_result1.txt"
file = open(file_name,mode="a",encoding="utf-8")
file.write("{:=^40s}
".format(" "))
def tearDownModule():
file.write("{:=^40s}
".format(" "))
file.close()
class TestMulti(unittest.TestCase):
"""
"""
def test_two_neg_multi(self):
"""
1.
:return:
"""
#
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(-3,-4).multiply()
#
expect_result = 12
#
msg = " "
try:
self.assertEqual(expect_result,real_result,msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
file.write("{}, :{}
:{}
".format(msg,"Fail"))
raise e
else:
file.write("{}, :{}
".format(msg,"Pass"))
def test_neg_pos_multi(self):
"""
2.
:return:
"""
#
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(-3,4).multiply()
#
expect_result = -12
#
msg=" "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
file.write("{}, :{}
".format(msg, "Pass"))
def test_two_pos_multi(self):
"""
:return:
"""
#
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(3,4).multiply()
#
expect_result = 12
#
msg=" "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
file.write("{}, :{}
".format(msg, "Pass"))
def test_zero_multi(self):
"""
4. 0
:return:
"""
#
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
print("
Running Test Method:{}".format(inspect.stack()[0][3]))
#
real_result = MathOper(0,0).multiply()
#
expect_result = 0
#
msg=" 0 "
try:
self.assertEqual(expect_result, real_result, msg=msg)
except AssertionError as e:
print(" {}".format(e))
# raise
file.write("{}, :{}
:{}
".format(msg, "Fail"))
raise e
else:
file.write("{}, :{}
".format(msg, "Pass"))
class TestDivide(unittest.TestCase):
"""
"""
def test_two_neg_divi(self):
"""
:return:
"""
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
#
real_result = MathOper(8,4).divide()
#
except_result = 2
msg = " "
try:
self.assertEqual(except_result,real_result,msg=msg)
except AssertionError as e:
file.write("{}, :{},
{}
".format(msg,"Fail",e))
raise e
else:
file.write("{}, :{}
".format(msg,"Pass"))
def test_neg_pos_divi(self):
"""
:return:
"""
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(8,-2).divide()
except_result = -4
msg = " "
try:
self.assertEqual(except_result,real_result,msg=msg)
except AssertionError as e:
file.write("{}, :{}
, {}
".format(msg,"Fail",e))
raise e
else:
file.write("{}, :{}
".format(msg,"Pass"))
def test_two_pos_divi(self):
"""
:return:
"""
file.write("Running Test Method:{}
".format(inspect.stack()[0][3]))
real_result = MathOper(-8,-2).divide()
except_result = 4
msg = " "
try:
self.assertEqual(except_result,real_result,msg)
except AssertionError as e:
print(e)
file.write("{}, :{}
{}
".format(msg,"Fali",e))
raise e
else:
file.write("{}, :{}
".format(msg,"Pass"))
@unittest.skip("test_zero_divi") #