Как протестировать скрипт Python с входным файлом, заполненным тестовыми примерами?
Вопрос
Я участвую в онлайн-конкурсах судей и хочу протестировать свой код с помощью файла .in, полного тестовых примеров для синхронизации моего алгоритма.Как я могу заставить свой сценарий принимать данные из этого файла .in?
Решение
Таким образом, скрипт обычно берет тестовые случаи из стандартного ввода, и теперь вы хотите протестировать тестовые случаи из файла?
Если это так, используйте операцию перенаправления <
в строке cmd:
my_script < testcases.in
Другие советы
Чтение из файла (ов) и / или стандартного ввода:
import fileinput
for line in fileinput.input():
process(line)
PyUnit " стандартная среда модульного тестирования для Python " может быть то, что вы ищете.
<Ч>Выполнение небольшого сценария, который выполняет что-то вроде этого:
#!/usr/bin/env python
import sys
def main():
in_file = open('path_to_file')
for line in in_file:
sys.stdout.write(line)
if __name__ == "__main__":
main()
И запустить как
this_script.py | your_app.py
Вы можете сделать это в отдельном файле.
testmyscript.py
import sys
someFile= open( "somefile.in", "r" )
sys.stdin= someFile
execfile( "yourscript.py" )