Я написал несколько тестов, которые я хочу запустить параллельно, используя pytest -n 10 (команда, написанная в tox). Эти тесты используют некоторые процессы. Я написал тест, чтобы проверить, запущены ли эти процессы. Я хочу запустить этот тест, прежде чем запускать другие тесты параллельно. Короче говоря, я хочу запустить тест. Если этот тест пройден с использованием pytest, я хочу запустить какой-то тест параллельно. Если этот тест не пройден. Казнь должна быть остановлена. Я использую токсины и pytest. Я хочу написать эти условия в токсикате. а также есть ли способ запустить некоторые тесты последовательно, а некоторые параллельно.
from io import StringIO
import fabric,re
fd = StringIO()
conn=fabric.Connection(ip, port=22, user="root", connect_kwargs={'password': password})
conn.get("/opt/CDOT-scscf/etc/scscf_defined_constants.cam","/tmp/scscf_conf.txt")
f=open("/tmp/scscf_conf.txt","r")
for i in f.readlines():
if "IMS_PCSCF_ADDR " in i :
pcscf_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "IMS_ICSCF_ADDR " in i :
icscf_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "IMS_SCSCF_ADDR " in i :
scscf_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "IMS_AS_ADDR " in i :
tas_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "IMS_MRF_ADDR " in i :
mrf_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "IMS_DRA_ADDR " in i :
dra_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "IMS_SCSCF_ADDR_PORT" in i:
scscf_port=re.findall(r'\d+',i)[0]
if "IMS_PCSCF_ADDR_PORT" in i:
pcscf_port=re.findall(r'\d+',i)[0]
if "IMS_TAS_ADDR_PORT" in i:
_port=re.findall(r'\d+',i)[0]
if "IMS_ICSCF_ADDR_PORT" in i:
scscf_port=re.findall(r'\d+',i)[0]
if "IMS_MRF_ADDR_PORT" in i:
scscf_port=re.findall(r'\d+',i)[0]
dra_port=3868
conn.get("/opt/CDOT-dra/etc/diam_constants.cam","/tmp/dra_conf.txt")
f=open("/tmp/dra_conf.txt","r")
for i in f.readlines():
if "DIAM_CDF_ADDR_1" in i :
cdf_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
if "DIAM_CDF_LCL_PORT_1" in i:
cdf_port=re.findall(r'\d+',i)[1]
if "DIAM_HSS_LCL_PORT_1" in i:
hss_port=re.findall(r'\d+',i)[1]
if "DIAM_HSS_ADDR_1 " in i :
hss_ip=re.findall(r'[0-9]+(?:\.[0-9]+){3}',i)[0]
def netstat():
return conn.run("netstat -apn| grep cdotdra",hide=True).stdout
def test_ims_status():
a=netstat()
assert dra_ip in a,"DRA IS NOT RUNNING"
assert icscf_ip in a,"ICSCF IS NOT RUNNING"
assert pcscf_ip in a,"PCSCF IS NOT RUNNING"
assert scscf_ip in a,"SCSCF IS NOT RUNNING"
assert tas_ip in a,"TAS IS NOT RUNNING"
assert hss_ip in a,"HSS IS NOT RUNNING"
assert mrf_ip in a,"MRF IS NOT RUNNING"
assert cdf_ip in a,"CDF IS NOT RUNNING"
Above is the test file tests_ims_status.py which I want to run at starting, which will be failed if any of the server is not running.
вот мой tox.ini
[tox]
envlist = py37
[testenv]
deps =
pytest
sysrsync
pytest-xdist
pytest-html
pandas
xlrd
whitelist_externals=echo
list_dependencies_command=echo
commands =
# pytest -s {posargs}
pytest -n 2 -v -s --html=C5.html --self-contained-html --disable-pytest-warnings tests/*
Итак, выше приведен файл tox.ini, который запускает всетесты параллельно. я хочу сначала запустить test_ims_status. Если это пройдено. затем запустите все тесты параллельно. и если это не удалось, не запускайте дальнейшие тесты. Я действительно извиняюсь за ошибки грамматики. Если вам нужно другое разрешение, пожалуйста, спросите.