Measurement¶
This is an example of how measurements can be saved in tests.
The set_case_measurement function allows to save measurement result to database. The code for this example can be seen inside the hardpy package Measurement.
how to start¶
- Launch
hardpy init measurement
. - Launch CouchDB instance.
- Modify the files described below.
- Launch
hardpy run measurement
.
test_1.py¶
import pytest
from hardpy import ComparisonOperation as CompOp, NumericMeasurement, set_case_measurement, set_message
pytestmark = pytest.mark.module_name("Numeric measurement")
@pytest.mark.case_name("Test 1")
def test_1():
meas0 = NumericMeasurement(value=1.0)
set_case_measurement(meas0)
set_message(f"{meas0.value}")
meas1 = NumericMeasurement(value=10, operation=CompOp.EQ, comparison_value=10)
set_case_measurement(meas1)
meas2 = NumericMeasurement(value=9, operation=CompOp.EQ, comparison_value=10)
set_case_measurement(meas2)
assert meas1.result
assert meas2.result, "value is not equal to 10"
@pytest.mark.case_name("Test 2")
def test_2():
meas = NumericMeasurement(value=5, operation=CompOp.NE, comparison_value=3)
set_case_measurement(meas)
assert meas.result
@pytest.mark.case_name("Test 3")
def test_3():
meas = NumericMeasurement(value=7, operation=CompOp.GELE, lower_limit=5, upper_limit=10)
set_case_measurement(meas)
assert meas.result
test_2.py¶
import pytest
from hardpy import ComparisonOperation as CompOp, StringMeasurement, set_case_measurement
pytestmark = pytest.mark.module_name("String measurement")
@pytest.mark.case_name("Test 1")
def test_1():
meas1 = StringMeasurement(value="1.2.1", operation=CompOp.EQ, comparison_value="1.2.1")
set_case_measurement(meas1)
assert meas1.result
meas2 = StringMeasurement(value="ABC", operation=CompOp.EQ, comparison_value="abc")
meas3 = StringMeasurement(value="ABC", operation=CompOp.EQ, casesensitive=False, comparison_value="abc")
assert not meas2.result
assert meas3.result