2010-08-24 53 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