forked from mindspore-Ecosystem/mindspore
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
# Copyright 2020 Huawei Technologies Co., Ltd
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
# ============================================================================
|
|
"""
|
|
@File : conftest.py
|
|
@Desc : common fixtures for pytest
|
|
"""
|
|
|
|
import pytest
|
|
from _pytest.runner import runtestprotocol
|
|
|
|
|
|
def pytest_addoption(parser):
|
|
"""
|
|
add runmode option to control running testcase
|
|
"""
|
|
parser.addoption(
|
|
"--runmode", action="store", default="nosimu",
|
|
help="simu:simulator backend & nosimu for no backend"
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def test_with_simu(request):
|
|
"""
|
|
run PyNative testcases when compiled with simulator
|
|
"""
|
|
return request.config.getoption("--runmode") == "simu"
|
|
|
|
|
|
# https://stackoverflow.com/questions/14121657/how-to-get-test-name-and-test-result-during-run-time-in-pytest
|
|
def pytest_runtest_protocol(item, nextitem):
|
|
reports = runtestprotocol(item, nextitem=nextitem)
|
|
for report in reports:
|
|
if report.when == 'call':
|
|
print(f"\n{item.name} --- {report.outcome}")
|
|
return True
|