Мне требуется инструмент для проведения юнит-тестирования одной и той же программы, написанной на разных языках. Писать каждый раз код тестов для неё на каждом из языков, во-первых, долго, а во-вторых, что страшнее, чревато ошибками в самих тестах. Мне нужна гарантия, что все версии программы работают идентично, а если тесты будут разные, гарантировать это невозможно.
Моя идея заключается в том, чтобы составить тесты в виде групп из:
- ключей программы;
- входных данных, читаемых программой из stdin;
- выходных данных, записываемых программой в stdout.
Например, некоторые тесты для утилиты wc:
[test of words]
options=-w
input=one two three
output=3
[test of characters]
options=-c
input=one two three
output=13
И вызов данных тестов:
$ some-utility --tests=wc_tests.ini --command=wc
Да, я понимаю, что написать самому подобную утилиту проще простого. Однако лучше использовать уже существующее, отлаженное и поддерживаемое, решение, чем создавать очередной велосипед.