command

首先要介紹的是conftest.py

conftest.py

  • 文件是一個單獨的存放fixtures的文件。
  • 基礎跑testing的設定全部都會在這裡例如command 或是 skip test等等的設定
  • 這是一開始看pytest專案最應該先看的檔案 先行了解他們使用的檔案

加入第一個command

使用標準的function 去加入我們的command以及default值

import pytest

def pytest_addoption(parser):
    parser.addoption("--envirementopt", action="store", default="TEST",
        help="TEST or PRD")
    parser.addoption("--brand", action="store", default="ASIA",
        help="ASIA or UK")

如何去使用呢? 這裡我們先宣告了fixture = unittest 的 設定setUp and tearDown 下一章節會詳細介紹

使用fixture標記函數後,函數將默認接入一個request參數,它將包含使用該fixture函數的信息。 http://senarukana.github.io/2015/05/29/pytest-fixture/

@pytest.fixture
def customBrand(request):
    return request.config.getoption("--brand")
@pytest.fixture
def customEnvirement(request):
    return request.config.getoption("--envirementopt")

在測試中就可以直接調用此fixture的值

def test_brand(customBrand):  
    assert customBrand == "brand"

所以我們指令可以這樣下

pytest --brand=brand

or 不下他會根據程式碼去拿defualt 的值

pytest

應用方法

  • pytest_generate_tests: allows one to define custom parametrization schemes or extensions. 應用於產生測試的參數時候

EX:

  • 根據command 決定要執行哪一些test case

  • 根據command 決定要生成哪一些test case參數

def pytest_generate_tests(metafunc):
    if metafunc.config.option.brand=="ASIA":
        dosomething....

https://docs.pytest.org/en/latest/parametrize.html#pytest-generate-tests

Metafunc objects are passed to the pytest_generate_tests hook. They help to inspect a test function and to generate tests according to test configuration or values specified in the class or module where a test function is defined.

這裡的用法 可以透過metafunc去拿到我們要的option值 他是一個OBJECT 用於處理test case 相關資訊

results matching ""

    No results matching ""