コード例 #1
0
class TestCalc:
    def setup_class(self):
        print("setup_class")
        self.calc = Calc()

    def teardown_class(self):
        print("teardown_class")

    def setup(self):
        print("setup")

    def teardown(self):
        print("teardown")

    # 参数化数据方式传参,可以是列表形式或者元组形式
    # @pytest.mark.parametrize("a,b,expect",[
    #     (1, 1, 2),
    #     [100, 100, 200],
    #     [0.1, 0.1, 0.2],
    #     (0, 10, 10),
    # ])
    # 使用yaml传参,基于数据的数据驱动
    @pytest.mark.parametrize("a,b,expect", yaml.safe_load(open("data.yaml")))
    # 定义一个加的测试用例
    def test_add(self, a, b, expect):
        # 实例化一个类
        calc = Calc()
        result = self.calc.add(Decimal(str(a)), Decimal(str(b)))
        print(f'result={result}')
        assert result == Decimal(str(expect))

    # # 使用yaml传参,基于数据的数据驱动
    # @pytest.mark.parametrize("a,b,expect",yaml.safe_load(open("data.yaml")))
    # # 定义一个加的测试用例
    # def test_add(self,a,b,expect):
    #     # 实例化一个类
    #     result = self.calc.add(a, b)
    #     assert result == expect

    # 再定义一个加的测试用例
    # def test_add(self):
    #     # 实例化一个类
    #     calc = Calc()
    #     result = calc.add(0.1, 0.1)
    #     assert result == 0.2

    def test_div(self):
        calc = Calc()
        result = calc.div(1, 1)
        assert result == 1

    def test_yaml(self):
        print(yaml.safe_load(open("data.yaml")))

    # 定义一个除的方法
    def test_div(self):
        pass
コード例 #2
0
class TestCalc:
    def setup(self):
        self.calc = Calc()

    @pytest.mark.parametrize(["a", "b", "c"],
                             yaml.safe_load(
                                 open(
                                     os.path.join(os.path.dirname(__file__),
                                                  '..', 'test_data',
                                                  'test_add_data.yaml'))))
    def test_add(self, a, b, c):
        print(f"测试数据分别是:{a},{b}")
        result = self.calc.add(a, b)
        print(result)
        assert c == result

    @pytest.mark.parametrize(["a", "b", "c"],
                             yaml.safe_load(
                                 open(
                                     os.path.join(os.path.dirname(__file__),
                                                  '..', 'test_data',
                                                  'test_div_data.yaml'))))
    def test_div_01(self, a, b, c):
        """正常情况下测试"""
        print(f"测试数据分别是:{a},{b}")
        result = self.calc.div(a, b)
        print(result)
        assert c == result

    @pytest.mark.parametrize(["a", "b"], [(5, 0)])
    def test_div_02(self, a, b):
        """除数为零"""
        print(f"测试数据分别是:{a}, {b}")
        with pytest.raises(ZeroDivisionError):
            self.calc.div(5, 0)
        # print(self.calc.div(5, 0))

    @pytest.mark.parametrize(["a", "b"], [(10, 3)])
    def test_div_03(self, a, b):
        """商为无限循环小数时"""
        print(f"测试数据分别是:{a}, {b}")
        result = self.calc.div(a, b)
        assert 3.3333333333 == round(result, 10)
コード例 #3
0
class TestCalc:
    def setup_class(self):
        print("setup_class")
        self.calc = Calc()

    def teardown_class(self):
        print("teardown_class")

    def setup(self):
        print("setup")

    def teardown(self):
        print("teardown")

    @pytest.mark.parametrize('a, b, expect',
                             yaml.safe_load(open("datas/data.yml")))
    # @pytest.mark.run(order=-1)
    def test_zadd_1(self, a, b, expect):
        result = self.calc.add(a, b)
        print(f"result = {result}")
        assert result == expect

    def get_steps(self):
        with open('steps/steps.yml') as f:
            return yaml.safe_load(f)

    def any_steps(self, data, expect):
        steps = self.get_steps()
        for step in steps:
            print(f"step == {step}")
            if 'add' == step:
                assert self.calc.add(*data) == expect
            elif 'add1' == step:
                assert self.calc.add1(data) == expect

    @pytest.mark.parametrize('a, b, expect',
                             yaml.safe_load(open("datas/data.yml")))
    # @pytest.mark.run(order=-1)
    def test_zadd_2(self, a, b, expect):
        data = (a, b)
        self.any_steps(data, expect)
        # result1 = self.calc.add(*data)
        # assert result1 == expect
        #
        # result2 = self.calc.add1(data)
        # assert result2 == expect

    # @pytest.mark.first
    def test_sub(self):
        assert 1 == self.calc.sub(2, 1)

    # @pytest.mark.run(order=3)
    def test_mul(self):
        assert 6 == self.calc.mul(2, 3)

    # @pytest.mark.run(order=4)
    def test_div_1(self):
        result = self.calc.div(1, 1)
        print(f"result = {result}")
        assert result == 1
コード例 #4
0
 def setup_class(self):
     print("setup_class")
     self.calc = Calc()
コード例 #5
0
 def setup(self):
     self.calc = Calc()
コード例 #6
0
 def test_div(self):
     calc = Calc()
     result = calc.div(1, 1)
     assert result == 1
コード例 #7
0
 def test_add(self, a, b, expect):
     # 实例化一个类
     calc = Calc()
     result = self.calc.add(Decimal(str(a)), Decimal(str(b)))
     print(f'result={result}')
     assert result == Decimal(str(expect))
コード例 #8
0
def calc():
    calc = Calc()
    return calc