2010-08-24 51 views
1

我有一个测试程序,提示用户输入(stdin),并根据输入,它要求其他输入,这也需要输入。为stdin提供输入以编程方式逐行?

有没有办法让脚本可以完成所有这些工作?

+0

这完全可能,但这个问题听起来太笼统了。 – 2010-08-24 23:55:42

+0

我希望我可以downvote评论。对问题+1 - 听起来像是一个很好的验收测试用例。 – 2010-08-25 02:22:59

回答

3

有一个名为expect程序,它几乎正是你想要的 - 你可以脚本的输入和预期产出和响应基于这些输出,简单或复杂,因为你需要。另请参阅预计的wikipedia entry

+0

补充:我找到了一本叫做Exploring Expect的书,这本书很不错。 – 2010-08-25 03:03:59

0

在一般情况下,yes,thereis

对于更具体的任务,您可以使用其他工具来完成对该特定任务更具专业性和可用性的工作。

+0

可以请你提供一个简单的例子吗?如果可能的话。 – 2010-08-25 00:12:21

+0

@Gollum:我需要一个具体的输入和输出的具体问题陈述。你能提供吗? – 2010-08-25 00:14:32

+0

当然,如果我说_foo.exe_请求_enter您的文件名:_现在我需要输入文件名,然后问我输入test_ ..... 我想把所有这些答案放在一个文件中或者一些脚本会自动做到这一点?但我不想浪费你的时间,我也在学习期待。所以它可以,如果你必须为此留出额外的时间。 – 2010-08-25 03:50:36

1

我可能误解了,但是你有一个程序,它读取输入,并做一些事情吧,你只是想知道如何自动提供它的一些测试输入?

对于给定的测试案例,您提供的输入必须依赖于程序的输出,还是每次都是相同的?

如果给定的测试输入的是每一次相同,则只是把它放在一个文本文件,重定向标准输入你的程序从文件中读取:

myprogram.exe < input.txt 

如果输入的是互不相时间,对于相同的测试,那么这没有帮助。但是对于一个典型的简单测试,你只想回答第一个问题的“y”,第二个回答“n”,第三个回答“hello world”,或者其他。

+0

史蒂夫,该节目是互动的,有很多组合。不可能手动输入所有内容,每当我们运行它时也是如此。 – 2010-08-25 03:03:05