Используя unittest (начиная с 3.4)
Начиная с Python 3.4, стандартная библиотека unittest
пакет имеет subTest
менеджер по контексту.
См. документацию:
Пример:
from unittest import TestCase
param_list = [('a', 'a'), ('a', 'b'), ('b', 'b')]
class TestDemonstrateSubtest(TestCase):
def test_works_as_expected(self):
for p1, p2 in param_list:
with self.subTest():
self.assertEqual(p1, p2)
можно также определить пользовательское сообщение и значения параметров к subTest()
:
with self.subTest(msg="Checking if p1 equals p2", p1=p1, p2=p2):
Используя нос
нос среда тестирования поддержки это .
Пример (код ниже является всем содержанием файла, содержащего тест):
param_list = [('a', 'a'), ('a', 'b'), ('b', 'b')]
def test_generator():
for params in param_list:
yield check_em, params[0], params[1]
def check_em(a, b):
assert a == b
вывод команды nosetests:
> nosetests -v
testgen.test_generator('a', 'a') ... ok
testgen.test_generator('a', 'b') ... FAIL
testgen.test_generator('b', 'b') ... ok
======================================================================
FAIL: testgen.test_generator('a', 'b')
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/nose-0.10.1-py2.5.egg/nose/case.py", line 203, in runTest
self.test(*self.arg)
File "testgen.py", line 7, in check_em
assert a == b
AssertionError
----------------------------------------------------------------------
Ran 3 tests in 0.006s
FAILED (failures=1)
Самым известным из них является Tesseract OCR , первоначально разработанный Motorola, а затем ставший открытым. Его также продвигает Google.
Есть еще несколько, возможно, не столь известных, как Tesseract: http://en.wikipedia.org/wiki/OCRopus http://jocr.sourceforge.net/
Здесь - интересная статья о том, как извлекать числа из изображения.
Автор собирает большое количество образцов для обучения своего алгоритма нейронных сетей и я полагаю, обработка изображений выполняется с помощью OpenCV .