使用TestCafe运行程序时dockerfile中的File-or-glob参数

问题描述

我是indicator [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0 0 0 0 0 0 0 0 0 0 0 0 0 [40] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > print(complete.data) Error in print(complete.data) : object 'complete.data' not found > complete.data<-expand_data(data = data[,1:3],+ y = data[,4],+ missing.x = 1:3,+ value.set = 0:1) > example2 <- icdglm(y ~ x1 + x2 + x3,family = binomial(link = "logit"),+ data = complete.data$data,weights = complete.data$weights,+ indicator = complete.data$indicator) Error in group.indicator[i] <- which(unique.indicator == indicator[i]) : replacement has length zero > summary(example2) Error in summary(example2) : object 'example2' not found > 的新手,正在尝试使用testcafe映像编写dockerfile。 在testcafe文档中,他们说我必须传递testcafe参数,该参数指定从中运行测试的文件或目录(以空格分隔)。 问题是我使用通用运行器,它获得了灯具名称,然后在用户要求截图时按需执行测试。 这就是为什么我对docker run命令中的内容感到困惑的原因,我认为它应该是运行程序文件。 亚军:

File-or-glob ...

docker命令: const takeScreenShot = async(fixtureName:string,testName:string) =>{ const testcafe= await createtestcafe('localhost'); try{ const runner = testcafe.createRunner(); await runner .src(`src/testcafe-automations/${fixtureName}.ts`) .filter(testRequested=>testRequested===testName) .browsers('chromiuim:headless') .screenshots({fullPage:true,path: screenshotsPath}) .run() } }

这是一个节点项目,我不确定是否在docker中甚至需要它,我也想在$ docker run -v ${PWD}:/tests -it --entrypoint node testcafe/testcafe 'chromium:headless --no-sandBox' '/tests/src/testcafe-automations/utils/runner-file.ts'映像中使用它。我唯一需要的就是截图。

解决方法

默认情况下,当您使用docker run启动TestCafe泊坞映像时,它只是将指定的参数传递给容器中的testcafe命令。如果您正在使用Runner对象,请使用node运行使用该对象的脚本。 由于您已经用node可执行文件覆盖了默认的entrypoint,因此可以将运行脚本的名称和灯具名称作为参数传递:

docker run -v ${PWD}:/tests -it --entrypoint node testcafe/testcafe '/tests/src/testcafe-automations/utils/runner.js' 'fixtureName'

runner.js中,应使用传递给Node.js的命令行参数来调用函数(使用process.argv进行读取)