首页 > 解决方案 > 我如何在python unittest中使用for循环运行单个python测试用例执行不同的输入/输出

问题描述

我们有计算.py 文件的单元测试。因此,我们为实际或预期的 assertEqual 编写了一个具有 5 个不同输入和输出的单元测试用例。

import pandas as pd
from src.calculation import getDataFrame as file, calculationAll as calcs

input_file_path = tests/inputs/ 
expected_file_path = tests/outputs/

input_csv_file_array = ["1 File.csv", "2 File.csv"]
output_csv_file_array = ["1 File-expected.csv", "2 File-expected.csv"]

pytest.index = 0
pytest.initial_df = pd.DataFrame()
pytest.output_df = pd.DataFrame()

class CalculationTests(unittest.TestCase):
    for i in range(len(input_csv_file_array )):
        pytest.index = 1
        pytest.initial_df = file.getDataFrame(input_file_path + input_csv_file_array[pytest.index])
        pytest.output_df = pd.read_csv(expected_file_path + output_csv_file_array[pytest.index])
        
        def test_1(self):
            state_df = calcs.Addition(self, pytest.initial_df)
            pytest.initial_df = state_df

            actual_value = state_df.add
            expected_value = pytest.output_df.add

            self.assertEqual(actual_value, expected_value)
        

标签: pythonunit-testingpytestpython-unittest

解决方案


推荐阅读