我目前正在努力让docker运行Robot Framework命令在Windows PowerShell psm1脚本中执行。
我成功使用的语法是
docker run -i `
-e variable name and value `
-e variable name and value `
-e variable name and value `
--name container name `
-v one volume `
-v another volume `
"$($REPO)/$($PROJECT)/image-name:latest"
robot -x $junitFileName -d $outputFolderName path-to-script
我对此感到满意,并对所有含义感到满意。
我的新问题是我必须根据某些输入参数来更改执行的机器人命令。在一种情况下,这包括使用对机器人的-i输入命令通过标签进行的测试。
现在我在这里有很多选择,包括标签,不包含标签,退出机械手,执行单个测试等。
我想在运行docker命令之前创建robot命令。目前,我正在一个单独的函数中创建此函数,该函数返回类似
的字符串"robot -x $junitFileName -d $outputFolderName -i $tagsToInclude path-to-script"
现在我要像这样执行docker命令
docker run -i `
-e variable name and value `
-e variable name and value `
-e variable name and value `
--name container name `
-v one volume `
-v another volume `
"$($REPO)/$($PROJECT)/image-name:latest"
$RobotCommand
这是为了节省重复的容器设置,因为每次更改的唯一内容就是机械手命令。我收到的错误如下。
从我的函数返回的返回字符串的命令是
robot -x junit-output.xml -d output-folder robot-script.robot
并且docker run出现以下错误:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"robot -x junit-output.xml -d output-folder robot-script.robot\": stat robot -x junit-output.xml -d output-folder robot-script.robot: no such file or directory": unknown.
在我看来docker试图启动一个名为“ robot -x junit-output.xml -d output-folder robot-script.robot”的文件夹,而实际上我想将此作为命令执行。 / p>
有什么想法吗?试图使这两种技术协同工作使我感到非常沮丧。