2012-12-19 32 views
1

我有一個基於Java的應用程序,我使用命令提示符運行。我目前正在手動測試它。我想讓這個過程自動化。我應該使用什麼工具或腳本?如何基於命令行自動化應用程序?

例如:

  1. 首先,我將運行java命令來運行java文件。
  2. 我的應用程序會給我5個選項。例如
    i。添加
    ii。減去
    iii。乘以 iv。劃分。

它應該選擇其中一個選項並添加數字並驗證預期結果。所有這些都將使用命令提示符完成。

+0

你[已經問過這個問題](http://stackoverflow.com/questions/13937541/how-to-automate-command-prompt-application)並得到了答案。在StackOverflow上不鼓勵雙重發帖。如果你不喜歡答案,你應該修改你的問題。 – RustyTheBoyRobot

回答

0

您需要使用批處理文件。將你的命令放在記事本文件中,並將其保存爲.bat

如果它們不是本機批處理命令,但您可能需要更改某些內容,但在確認之前您需要發佈命令。

2

我知道你在問一個命令提示符的解決方案,但你真的應該看看JUnit。對於更大範圍的測試條件,這將是一個更可維護的解決方案。如果您使用命令行,則必須解析所有的輸入和輸出。爲了真正測試你的代碼,你不應該經過命令行的中間(stdin,stdout);您應該擁有運行Java代碼的Java代碼,因爲它可以訪問這些變量。

如果您確實在使用命令行,您將不得不提供有關您的程序如何運行的更多詳細信息。這僅僅是一個在黑暗中拍攝:

inputs.txt(這些是被輸送到你的程序的輸入)

Add 
4 
6 

test.bat

@ECHO OFF 
:: I just assume that your program prompts for input and waits for stdin 
java YourMainClass <inputs.txt> testOutput.txt 
:: Program prompts for an operation; "Add" is read from inputs.txt 
:: Program prompts for values; "4" and "6" are read from inputs.txt 
:: Program prints out the result, which is redirected to testOutput.txt 
:: Now you have to read in the testOutput.txt file and look at the last line 
FOR /F %%i IN (testOutput.txt) DO SET RESULT=%%i 
:: The variable RESULT now contains your program's answer 
:: Create a variable to compare your actual result with the expected result 
SET EXPECTED=10 
IF %RESULT% == %EXPECTED% ECHO "You were correct" 
IF NOT %RESULT% == %EXPECTED% ECHO "You were not correct" 
0

標準輸入可以反饋到Java應用程序。如果你正在使用bash它可以像下面這樣做:

java myapp.java < test1 

哪裏myapp.java與主方法您的應用程序,並test1的是你的測試輸入(一個普通的老文本文件)。

相關問題