将参数传递给使用Powershell和Robot Framework执行的Docker运行命令

时间:2018-09-24 12:15:47

标签: powershell docker robotframework

我目前正在努力让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>

有什么想法吗?试图使这两种技术协同工作使我感到非常沮丧。

0 个答案:

没有答案