你想要什麼似乎是一個銀彈。 這是可行的,你不需要編譯一個東西,但你仍然需要寫一些關於機器人框架的邏輯。
- 據我瞭解,你需要調用的東西在CLI - 這是小事,機器人已經這樣做了
- 它有一個輸入文件和一些輸出數據 - 平凡, - 機器人已經這樣做了
- 您需要將實際輸出數據與預期輸出數據進行比較 - 在這裏您需要一些手肘潤滑脂。
- 打包日誌 - 機器人已經做到了這一點。
- 在詹金斯展示他們 - 微不足道 - 機器人已經做到了這一點。
所以所有的繁重工作已經完成。
調用CLI - 如果你想有一個靈活的方式來輸入的東西使用OperatingSystem的
*** Settings ***
Library OperatingSystem
*** Test Cases ***
Basic test
Run Me A Command simcode.exe -j input01.inp
*** keywords ***
Run Me A Command
[Arguments] ${command}
${rc} ${output} = Run and Return RC and Output ${command}
Log ${output}
Should Be Equal As Integers ${rc} 0
Should Not Contain ${output} FAIL
-
*** settings ***
Library OperatingSystem
*** Test Cases ***
Combinations
[Template] Basic test
input01.inp
input02.inp
input03.inp
*** keywords ***
Basic test
[Arguments] ${input}
Run Me A Command simcode.exe -j ${input}
Run Me A Command
[Arguments] ${command}
${rc} ${output} = Run and Return RC and Output ${command}
Log ${output}
Should Be Equal As Integers ${rc} 0
Should Not Contain ${output} FAIL
接下來,我們需要比較兩個文件的內容... 假設您將文件移到了一個方便的位置,您可以爲自己寫一個密鑰字內容
*** settings ***
Library OperatingSystem
*** Test Cases ***
Combinations
[Template] Basic test
../resources/input01.inp ../resources/expectedoutput01.out
../resources/input02.inp ../resources/expectedoutput02.out
../resources/input03.inp ../resources/expectedoutput03.out
*** keywords ***
Basic test
[Arguments] ${input} ${expected_output}
Run Me A Command simcode.exe -j ${input}
Log File output.data
Compare Files ${expected_output} output.data
假設內容是一個參數列表,在INI格式進行比較。 例如,讓我們假設您計算輸入文件中存在的數字的平方根
我們如何存儲預期數據? 假設我們有一個名爲expected.dat
[defaults]
n_1=1
n_4=2
n_9=3
文件,我們還有output.data
[defaults]
n_1=1
n_4=2
n_9=2
然後我們需要給自己寫一個文件比較。 要麼你去DIFF和OperatingSystem的圖書館,如果你有信心,文件應該是相同的,或者你可以編寫一個簡單的比較:
def get_param(self,theFile)
config = ConfigParser.RawConfigParser()
config.read(theFile)
return config.items("defaults")
def compareMyDict(self, expected, actual): #There are better ways of doing this
for k, v in actual:
if v != expected[k]:
print("error message")
print(k)
print(v)
print(expected[v])
#print whatever you deem fit
return
print("Matched OK " + str(k))
print(k)
print(v)
print(expected[v])
def compare_files(self, expectedFile, actualFile):
'''
From sourceFile formatted
[defaults]
key=value
'''
d1 = get_param(expectedFile)
d1 = get_param(actualFile)
compareMyDict(d1,d2)
checkLenghts(d1,d2)
criteria2(d1,d2)
#etc.
4和5運行後,您可以使用發佈假象併發布機器人結果插件以將格式良好的輸出傳遞給Jenkins。
瞧!
PS:代碼可能無法運行 - 我在一個簡單的編輯器中寫了自由式,沒有語法突出顯示,我沒有測試它。