我有一個基於Java的應用程序,我使用命令提示符運行。我目前正在手動測試它。我想讓這個過程自動化。我應該使用什麼工具或腳本?如何基於命令行自動化應用程序?
例如:
- 首先,我將運行
java
命令來運行java文件。 - 我的應用程序會給我5個選項。例如
i。添加
ii。減去
iii。乘以 iv。劃分。
它應該選擇其中一個選項並添加數字並驗證預期結果。所有這些都將使用命令提示符完成。
我有一個基於Java的應用程序,我使用命令提示符運行。我目前正在手動測試它。我想讓這個過程自動化。我應該使用什麼工具或腳本?如何基於命令行自動化應用程序?
例如:
java
命令來運行java文件。它應該選擇其中一個選項並添加數字並驗證預期結果。所有這些都將使用命令提示符完成。
您需要使用批處理文件。將你的命令放在記事本文件中,並將其保存爲.bat
。
如果它們不是本機批處理命令,但您可能需要更改某些內容,但在確認之前您需要發佈命令。
我知道你在問一個命令提示符的解決方案,但你真的應該看看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"
標準輸入可以反饋到Java應用程序。如果你正在使用bash它可以像下面這樣做:
java myapp.java < test1
哪裏myapp.java與主方法您的應用程序,並test1的是你的測試輸入(一個普通的老文本文件)。
你[已經問過這個問題](http://stackoverflow.com/questions/13937541/how-to-automate-command-prompt-application)並得到了答案。在StackOverflow上不鼓勵雙重發帖。如果你不喜歡答案,你應該修改你的問題。 – RustyTheBoyRobot