如何在基于Appveyor的Windows中开始类似Unix的工作?

时间:2018-10-28 17:22:38

标签: python windows continuous-integration appveyor

我的项目中有一个单独的虚拟Web服务器,需要在运行测试之前执行。

在任何Linux环境(确切地说,Travis)上,我都可以使用&作为作业来启动命令。在Travis上,我在before_script上进行以下操作:

python tests/server.py &

但是,Windows是一个不同的环境,从我在某些资源上看到的来看,陈旧的cmd不像Linux系统那样支持像 job 的功能。我看过一些骇人听闻的解决方案,并尝试了这些解决方案,但是没有运气,我观察并手动停止了在Appveyor上进行构建。

我也尝试了一些Powershell命令,但是没有运气。我在before_test中尝试过的事情:

ps: 'Start-Process -NoNewWindow "python.exe tests/server.py"'
ps: 'Start-Process -NoNewWindow "${$ENV:PYTHON}\\python.exe tests/server.py"'
ps: 'Start-Process -NoNewWindow "${ENV:PYTHON}\\python.exe tests/server.py"'
ps: 'Start-Process -NoNewWindow "$env:PYTHON\\python.exe tests/server.py"'
ps: "Start-Process -NoNewWindow { $ENV:PYTHON\\python.exe tests/server.py }"
ps: "Start-Process -NoNewWindow { %PYTHON%\\python.exe tests/server.py }"  # this does not work since, apparently, ps does not support %-surrounded variables

我已经尝试过这些,或者得到了类似于Unexpected tokenFile not found on specified path.的东西,而Powershell甚至没有告诉它找不到哪个文件(是[i] PATH_TO_PYTHON/python.exe或[ii] tests/server.py在抱怨吗?)。

  

Unexpected token的错误与.appveyor.yml无关。构建成功开始,并且运行了install步骤。

如何在AppVeyor上运行before_test命令并将其推送到后台?

0 个答案:

没有答案