class TestCalc: # 定义类开始要做的操作:实例化一个计算器 def setup_class(self): print("开始计算") self.cal = Calculator() def teardown_class(self): print("结束计算") # 测试加法计算器 # 给加法计算器添加一个标签 @pytest.mark.search # 参数化,可以实现生成多条测试用例,即便有测试用例失败了,其他测试用例也可以正常执行,而不会中断执行。 @pytest.mark.parametrize( "a,b,result", [[1, 1, 2], [100, 200, 300], [3, 4, 8], [200, 200, 400]]) #获取yaml文件的数值 def get_datas(self): with open("./datas/calc.yml") as f: self.datas = yaml.safe_load(f) print("datas") return self.datas def test_add(self, a, b, result): print(f"a = {a},b = {b},result = {result}") # cal = Calculator() assert result == self.cal.add(a, b) # 测试减法计算器 # 给除法计算器添加一个标签 @pytest.mark.login def test_div(self): # cal = Calculator() assert 2 == self.cal.div(4, 2)
class TestCalc: # 可以将初始化放到这里来,然后测试用例使用 def setup_class(self): self.calc = Calculator() def setup(self): print("开始计算") def teardown(self): print("计算结束") @pytest.mark.parametrize("a,b,result", yaml.safe_load(open("../data/calculator_add.yaml"))) def test_add(self, a, b, result): """ 加法测试用例 """ assert self.calc.add(a, b) == result pass # @pytest.mark.login @pytest.mark.parametrize("a,b,result", yaml.safe_load(open("../data/calculator_div.yaml"))) def test_div(self, a, b, result): """ 加法测试用例,添加了异常逻辑判断,除数为0捕获异常则通过 """ if b == 0: try: assert self.calc.div(a, b) == result print("除 0 异常数据未正常异常抛出") raise Exception("除 0 异常数据未正常异常抛出") except ZeroDivisionError as e: print("除 0 异常数据异常抛出") else: assert self.calc.div(a, b) == result pass
class TestCalc: add_datas: list = get_datas("add") div_datas: list = get_datas("div") # 前置条件 def setup_class(self): print("开始计算") self.calc = Calculator() # 后置条件 def teardown_class(self): print("结束计算") @pytest.mark.parametrize("a, b, result", add_datas[0], ids=add_datas[1]) def test_add(self, a, b, result): print(f"a={a} , b ={b} ,result={result}") assert result == self.calc.add(a, b) # def test_add1(self): # datas = [[1, 1, 2], [100, 400, 300], [1, 0, 1]] # for data in datas: # print(data) # assert data[2] == self.calc.add(data[0], data[1]) # 相除功能 @pytest.mark.parametrize("a, b, result", div_datas[0], ids=div_datas[1]) def test_div(self, a, b, result): if b == 0: print("除数不能为0") assert result == self.calc.div(a, b) elif a or b is not int: print("请输入数字") assert result == self.calc.div(a, b) else: print(f"a={a} , b ={b} ,result={result}") assert result == self.calc.div(a, b)
class TestCalc: datas: list = get_datas() def setup_class(self): print("开始计算") self.calc = Calculator() def teardown_class(self): print("结束计算") #相加功能 @pytest.mark.parametrize("a,b, result", datas[0], ids=datas[1]) def test_add(self, a, b, result): assert result == self.calc.add(a, b) # "a,b,result", datas[2] #相除功能 @pytest.mark.parametrize("a,b, result", datas[2], ids=datas[3]) def test_div(self, a, b, result): if b != 0: assert result == self.calc.div(a, b) elif b == 0: with pytest.raises(ZeroDivisionError): self.calc.div(a, b)
class Test_Cala: def setup_class(self): print("验证开始啦!!!") def teardown_class(self): print("验证结束啦!!!") def setup(self): print("开始计算") self.cal = Calculator() def teardown(self): print("计算结束") @pytest.mark.parametrize(["a", "b", "expect"], get_data()[0], ids=get_data()[1]) def test_add(self, a, b, expect): add = self.cal.add(a, b) print(add) assert add == expect @pytest.mark.parametrize(["a", "b", "expect"], get_data()[2], ids=get_data()[3]) def test_sub(self, a, b, expect): sub = self.cal.sub(a, b) print(sub) assert sub == expect @pytest.mark.parametrize(["a", "b", "expect"], get_data()[4], ids=get_data()[5]) def test_mul(self, a, b, expect): mul = self.cal.mul(a, b) print(mul) assert mul == expect @pytest.mark.parametrize(["a", "b", "expect"], get_data()[6], ids=get_data()[7]) def test_div(self, a, b, expect): div = self.cal.div(a, b) print(div) assert div == expect
class TestCalc(): datas: list=get_datas() #前置条件 def setup_class(self): print("开始计算") self.calc=Calculator() # 后置条件 def teardown_class(self): print("结束计算") @pytest.mark.parametrize("a,b,result",datas[0],ids=datas[1]) def test_add(self,a,b,result): print(f"a={a},b={b},result={result}") assert result==self.calc.add(a,b) @pytest.mark.parametrize("a,b,result", datas[2], ids=datas[3]) def test_div(self, a, b, result): print(f"a={a},b={b},result={result}") assert result == self.calc.div(a, b)
class TestCalc: datas1: list = get_datas1() datas2: list = get_datas2() # 前置条件 def setup_class(self): print("开始计算") self.calc = Calculator() # 后置条件 def teardown_class(self): print("结束计算") #测试相加功能 @pytest.mark.parametrize("a, b, result", datas1[0], ids=datas1[1]) def test_add(self, a, b, result): print(f"a={a} , b ={b} ,result={result}") assert result == self.calc.add(a, b) #测试相除功能 @pytest.mark.parametrize("a, b, result", datas2[0], ids=datas2[1]) def test_div(self, a, b, result): print(f"a={a} , b={b}, result={result}") assert result == self.calc.div(a, b)