Comment tester un script Python avec un fichier d'entrée rempli de cas de test?
Question
Je participe à des concours de juges en ligne et je souhaite tester mon code avec un fichier .in contenant des tests afin de chronométrer mon algorithme. Comment puis-je obtenir mon script pour prendre des entrées de ce fichier .in?
La solution
Ainsi, le script prend normalement les scénarios de test de stdin et vous souhaitez maintenant tester des scénarios de test à partir d'un fichier?
Si tel est le cas, utilisez l'opération de redirection <
sur la ligne de commande:
my_script < testcases.in
Autres conseils
Lire des fichiers et / ou stdin:
import fileinput
for line in fileinput.input():
process(line)
PyUnit & "; le cadre de test unitaire standard pour Python &"; pourrait être ce que vous recherchez.
Faire un petit script qui fait quelque chose comme ça:
#!/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()
Et courez comme
this_script.py | your_app.py
Vous pouvez le faire dans un fichier séparé.
testmyscript.py
import sys
someFile= open( "somefile.in", "r" )
sys.stdin= someFile
execfile( "yourscript.py" )