Robot是否自动导入运行robot文件的目录(当前目录和子目录)?如果是,有没有办法避免这种情况?
例如,mytest.robot当前目录为/home/test/ mytest.bot,运行mytest.robot后,PYTHONPATH包含/home/test/
发布于 2019-12-19 21:30:48
机器人是否自动导入运行机器人文件的目录(当前目录和子目录)?
不,它自动导入的唯一东西是内置的关键字。Robot不会设置PYTHONPATH,除非您告诉它。
发布于 2019-12-20 10:56:23
正如下面的documentation中所解释的,
BuiltIn library是特殊的,因为它是自动使用的,因此它的关键字总是可用的。
虽然,RF文档没有提到任何关于自动加载目录的内容,但根据robot run documentation和实际的测试路径,他们正在使用和不使用pythonpath参数进行测试。
robot将通过加载文件并将加载的文件路径保存在PYTHONPATH中来开始执行测试文件(即使发生这种情况,它们也使用--PYTHONPATH),这就是您看到dir的原因。
摘录自下面提到的机器人框架代码库,
${RUNNER DEFAULTS}
... ${COMMON DEFAULTS}
... --ConsoleMarkers OFF
... --PYTHONPATH "${CURDIR}${/}..${/}testresources${/}testlibs"
... --PYTHONPATH "${CURDIR}${/}..${/}testresources${/}listeners"
*** Keywords ***
Run Tests
[Arguments] ${options}= ${sources}= ${default options}=${RUNNER DEFAULTS} ${output}=${OUTFILE}
[Documentation] *OUTDIR:* file://${OUTDIR} (regenerated for every run)
${result} = Execute ${INTERPRETER.runner} ${options} ${sources} ${default options}
Log Many RC: ${result.rc} STDERR:\n${result.stderr} STDOUT:\n${result.stdout}
Process Output ${output}
[Return] ${result}机器人是否自动导入运行机器人文件的目录(当前目录和子目录)?如果是,有没有办法避免这种情况?
即使根据代码,答案也是“不”。就更改此行为而言,您始终可以使用--pythonpath选项。
https://stackoverflow.com/questions/59408299
复制相似问题