我对Robot Framework很新,我找不到在windows上运行带参数的进程的方法。我很确定我不懂文档,但有一种简单的方法可以做到这一点......
好吧,假设我可以使用此命令启动程序:
c:\myappdir>MyApp.exe /I ..\params\myAppParams.bin
如何在RF中做到这一点?
任何形式的帮助将不胜感激。 非常感谢你:))
编辑1:
这是我的一段代码:
| *Setting* | *Value*
| Resource | compilationResource.robot
#(Process lib is included in compilationResource)
#I removed the "|" for readability
...
TEST1
...
${REPLAYEXEDIR}= get_replay_exe_dir #from a custom lib included in compilationResource
${EXEFULLPATH}= Join Path ${WORKSPACEDIR} ${REPLAYEXEDIR} SDataProc.exe
Should Exist ${EXEFULLPATH}
${REPLAYLOGPATH}= Join Path ${WORKSPACEDIR} ReplayLog.log
${REPLAYFILEPATH}= Join Path ${WORKSPACEDIR} params params.bin
Should Exist ${REPLAYFILEPATH}
Start Process ${EXEFULLPATH} stderr=${REPLAYLOGPATH} stdout=${REPLAYLOGPATH} alias=replayjob
Process Should Be Running replayjob
Terminate Process replayjob
Process Should Be Stopped replayjob
这很有效。一旦我尝试包含这样的论点:
Start Process ${EXEFULLPATH} ${/}I ${REPLAYFILEPATH} stderr=${REPLAYLOGPATH} stdout=${REPLAYLOGPATH} alias=replayjob
我收到此错误:
WindowsError:[错误2]系统找不到指定的文件
并且此错误来自启动流程行。
如果我不清楚或者是否需要更多信息,请告诉我。 谢谢大家的帮助。
编辑2:解决方案
每个参数必须与另一个参数分开(当不在shell中运行时)与双空格分开。我没有使用双倍空格,因此错误。
| | Start Process | ${EXEFULLPATH} | /I | ${REPLAYFILEPATH} | stderr=${REPLAYLOGPATH} | stdout=${REPLAYLOGPATH} | alias=replayjob
答案 0 :(得分:4)
要从Robot Framework Test启动程序,请使用Process library之类的:
*** Settings ***
Library Process
*** Test Cases ***
First test
Run Process c:${/}myappdir${/}prog.py /I ..\params\myAppParams.bin
# and then do some tests....