Я пишу тест, чтобы проверить, что моя программа способна решить проблему под рукой для разных уровней сложности.Ожидаемый результат всегда одинаков (решение завершено), поэтому одно определение теста работает для всех проблем.
Как запустить тот же тест для списка значенийчитать из файла, но сказать unittest обрабатывать каждую из этих проблем как отдельный тест , чтобы я мог точно определить все случаи неудачи / прохождения? (желательно без внешних библиотек)
КомуВо избежание явного указания test_solution_1, test_solution_2... test_solution_n
, моей первоначальной мыслью было создание цикла for для каждого элемента списка и выполнение утверждений по одному:
class TestProblem(unittest.TestCase):
def test_all(self):
results = Counter()
rng = 50
for i in range(rng):
p = Problem(matrix_index=i) # generate instance of problem.
p.solve()
results[p.is_complete()] += 1 # log result of test.
self.assertTrue(p.is_complete(), msg="Failed at %s" % str(i))
# Now ensure all instances passed (useful when above assertion not included).
self.assertEqual(results[True], rng, msg="SCORE: %s / %s" % (results[True], rng))
Проблема этого подхода заключается в том, чтоПервый сбой останавливает работу остальных, поэтому сложнее получить полное представление о том, что не так.