2010-08-24 3 views
1

J'ai un programme de test qui invite l'utilisateur à entrer (stdin), et en fonction des entrées, il demande d'autres entrées, qui doivent également être saisies.fournir des entrées à stdin par ligne?

Y a-t-il une façon dont je peux avoir un script pour faire tout ce travail?

+0

C'est tout à fait possible mais la question semble trop générale. –

+0

Je souhaiterais pouvoir faire un commentaire négatif. +1 à la question - ressemble à un bon cas d'utilisation pour les tests d'acceptation. –

Répondre

3

Il existe un programme appelé expect qui fait à peu près exactement ce que vous voulez - vous pouvez scripter les entrées et les sorties attendues et les réponses basées sur ces sorties, aussi simples ou complexes que vous le souhaitez. Voir aussi la wikipedia entry pour attendre

+0

à ajouter: J'ai trouvé un livre intitulé «Exploring Expect», qui est plutôt bon. –

0

Dans le cas général, yes, thereis.

Pour des tâches plus spécifiques, vous pouvez obtenir d'autres outils pour effectuer le travail qui sera plus spécialisé et utilisable pour cette tâche particulière.

+0

pouvez-vous s'il vous plaît fournir un exemple simple dans l'un d'eux? si possible. –

+0

@Gollum: J'aurais besoin d'un énoncé de problème spécifique avec des entrées et des sorties spécifiques. Pouvez-vous fournir cela? –

+0

sûr, si je dis _foo.exe_ est demande _enter votre nom de fichier: _ maintenant je dois entrer le nom du fichier, puis me demande _entre le type de test_ ..... Je veux mettre toutes ces réponses dans un fichier ou un script qui le fait automatiquement? Mais je ne veux pas perdre votre temps, j'apprends aussi. Donc c'est bon si vous avez besoin de plus de temps pour cela. –

1

Je peux avoir mal compris, mais avez-vous un programme qui lit l'entrée et fait quelque chose avec elle, et vous voulez juste savoir comment automatiser en fournissant une entrée de test?

Pour un cas de test donné, l'entrée que vous fournissez dépend-elle de la sortie du programme ou est-elle la même à chaque fois?

Si l'entrée pour un test donné est le même à chaque fois, puis il suffit de mettre dans un fichier texte et rediriger stdin pour votre programme pour lire ce fichier:

myprogram.exe < input.txt 

Si l'entrée est différent chaque temps, pour le même test, cela n'aide pas. Mais pour un test simple typique, vous voulez juste répondre "y" à la première question, "n" à la seconde, et "bonjour monde" au troisième, ou peu importe.

+0

Steve, le programme est interactif, avec de nombreuses combinaisons. pas possible d'entrer manuellement tout, aussi chaque fois que nous l'exécutons. –

Questions connexes