我的项目中有一个单独的虚拟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 token
或File not found on specified path.
的东西,而Powershell甚至没有告诉它找不到哪个文件(是[i] PATH_TO_PYTHON/python.exe
或[ii] tests/server.py
在抱怨吗?)。
Unexpected token
的错误与.appveyor.yml
无关。构建成功开始,并且运行了install
步骤。
如何在AppVeyor上运行before_test
命令并将其推送到后台?