I want to pass below lists from my command line to my pytest code (like argparser in python), can anyone help me how to do this ?
pytest -vs test_sample.py --html=results.html --A_list=['A1', 'A2'] --B_list=['B1'] --C_list=['C1', 'C2']
Here is my pytest code.
import pytest
@pytest.fixture(scope="session", params=A_list) # here A_list is a list and it has to be passed from command line
def get_A_list(request):
print("inside fixture get_A_list - element in A_list: ".format(request.param))
yield request.param
@pytest.fixture(scope="module", params=B_list) # here B_list is a list and it has to be passed from command line
def get_B_list(request, get_A_list):
print("inside fixture get_B_list - element in A_list: {}, element in B_list: {}: ".format(get_A_list, request.param))
yield request.param
@pytest.mark.parametrize("c", C_list) # here C_list is a list and it has to be passed from command line
def test_functionality(get_A_list, get_B_list, c):
print("inside function test_functionality - element in A_list: {}, element in B_list: {}, element in C_list: {}: ".format(get_A_list, get_B_list, c))
test_functionality is my test case function. The number of test cases should be based on length of lists passed in command line
It has to execute test cases in below order for the above mentioned lists.
test_functionality[A1-B1-C1]
test_functionality[A1-B1-C2]
test_functionality[A2-B1-C1]
test_functionality[A2-B1-C2]
I need to perform some operation in **fixture get_A_list using elements in A_list ....similarly i need to perform some operations in fixture get_B_list using elements in A_list and B_list .......like this i have 4 fixtures and finally i need to execute the test cases in test_functionality which will use elements in A_list , B_list , C_list etc..
Finally the the output should be like below ..
inside fixture get_A_list - element in A_list: A1
inside fixture get_B_list - element in A_list: A1, element in B_list: B1
inside function test_functionality - element in A_list: A1, element in B_list: B1, element in C_list: C1
inside function test_functionality - element in A_list: A1, element in B_list: B1, element in C_list: C2
inside function test_functionality - element in A_list: A1, element in B_list: B1, element in C_list: C3
inside fixture get_A_list - element in A_list: A2
inside fixture get_B_list - element in A_list: A2, element in B_list: B1
inside function test_functionality - element in A_list: A2, element in B_list: B1, element in C_list: C1
inside function test_functionality - element in A_list: A2, element in B_list: B1, element in C_list: C2
inside function test_functionality - element in A_list: A2, element in B_list: B1, element in C_list: C3