zoukankan      html  css  js  c++  java
  • pytest的参数化

    参数化有两种方式:

    1、

    @pytest.mark.parametrize

    2、利用conftest.py里的

    pytest_generate_tests

    1中的例子如下:

    @pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4", 6), ("6*9", 42)])
    def test_eval(test_input, expected):
        assert eval(test_input) == expected

     2中的例子(自己定义参数化,pytest_generate_tests 是在收集测试方法时会被调用)的:

    conftest.py 

    def pytest_addoption(parser):
        parser.addoption(
            "--stringinput",
            action="append",
            default=[],
            help="list of stringinputs to pass to test functions",
        )
    
    
    def pytest_generate_tests(metafunc):
        if "stringinput" in metafunc.fixturenames:
            metafunc.parametrize("stringinput", metafunc.config.getoption("stringinput"))

    a_test.py
    def test_valid_string(stringinput):
        assert stringinput.isalpha()

    执行测试:
    pytest -q --stringinput="hello" --stringinput="world" a_test.py


    参数化参考地址:
    https://docs.pytest.org/en/latest/parametrize.html#pytest-mark-parametrize-parametrizing-test-functions
  • 相关阅读:
    webkit 技术内幕 笔记 二
    webkit 技术内幕 笔记 一
    javascript 权威指南1
    正则
    react-virtualized
    移动端字体
    vue 学习3
    vue 学习2
    vue 学习1
    移动端display:flex
  • 原文地址:https://www.cnblogs.com/yingchen/p/10889025.html
Copyright © 2011-2022 走看看