pytest參數化自定義測試用例標題


  pytest使用裝飾器@pytest.mark.parametrize進行參數化后,在控制台或者測試報告中的測試用例標題都是以參數組合起來命名的,這樣的標題看起來不太直觀,我們想要展示我們自己定義的標題,這時候需要用到裝飾器@pytest.mark.parametrize參數化的另外一個參數ids來實現。

沒有使用ids之前:

# file_name: test_parametrize.py


import pytest


def return_user():
    return [('lwjnicole', '12345'), ('nicole', '123111')]


class Test_D:

    @pytest.mark.parametrize("username,password",return_user())
    def test_login(self, username, password):
        print("username = {}, password = {}".format(username, password))
        assert username == "lwjnicole"


if __name__ == '__main__':
    pytest.main(['-s', 'test_parametrize.py'])

運行結果:

  從結果中可以看到用例的標題是由所有參數組合而來的,這樣看起來不怎么直觀。

使用ids自定義測試用例標題:

# file_name: test_parametrize.py


import pytest


def return_user():
    return [('lwjnicole', '12345'), ('nicole', '123111')]


class Test_D:

    @pytest.mark.parametrize("username,password",
                             return_user(),
                             ids=[
                                 "login success",
                                 "login fail"
                             ])
    def test_login(self, username, password):
        print("username = {}, password = {}".format(username, password))
        assert username == "lwjnicole"


if __name__ == '__main__':
    pytest.main(['-s', 'test_parametrize.py'])

運行結果:

  從結果中可以看到用例的標題已經不再是各參數的組合了,而是我們在參數ids中定義的,這樣我們就實現了測試用例標題的自定義。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM