我们如何在多个测试中维护一个变量并将其报告(在控制台或文件中)?
假设您在一个名为math_operations.py
的模块中有一个计算两个数字之和的函数:
# math_operations.py
def add_numbers(a, b):
return a + b
让我们创建一个名为test_math_operations.py
的带有两个测试的Pytest模块.我想要保持两个测试的总分:
# test_math_operations.py
import pytest
from math_operations import add_numbers
@pytest.fixture
def score():
return {"score_pos": 0, "score_neg": 0}
def test_add_numbers_positive(score):
result = add_numbers(2, 3)
assert result == 5
score["score_pos"] =2
assert score["score_pos"] == 2
def test_add_numbers_negative(score):
result = add_numbers(-5, 10)
assert result == 5
score["score_neg"] = 3
assert score["score_neg"] == 3
#print(score)
@R.K收到 comments 后Updated test_math_operations.py(见下文)
# test_math_operations.py
import pytest
from math_operations import add_numbers
class DemoClass:
score_pos = 0
score_neg = 0
@pytest.fixture() # (score="class")
def score():
test = DemoClass
yield test
scoreClass = DemoClass()
class TestDemo:
global scoreClass
def test_add_numbers_positive(score):
result = add_numbers(2, 3)
assert result == 5
scoreClass.score_pos =2
def test_add_numbers_negative(score):
result = add_numbers(-5, 10)
assert result == 5
scoreClass.score_neg = 3
print(scoreClass.score_neg, scoreClass.score_neg)
如果我不能得到乐谱词典给我,我想要分数的总价值.
任何帮助都将不胜感激.