你想要什么似乎是一个银弹。 这是可行的,你不需要编译一个东西,但你仍然需要写一些关于机器人框架的逻辑。
- 据我了解,你需要调用的东西在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:代码可能无法运行 - 我在一个简单的编辑器中写了自由式,没有语法突出显示,我没有测试它。