PHP调用.bat文件执行codeception测试命令

2 篇文章 0 订阅

需求:通过接口或url地址请求,使php代码调用且执行一个编写得有调用codeception测试命令的.bat脚本。

代码环境:phpStudy集成环境(php-7.0.12-nts+Apache);YII2(basic版)框架;服务器及本机操作系统:widows

遇到的问题:exec()函数执行编写调用codeception测试命令的文件时无任何返回值。具体情况为,exec()函数能够正常执行cmd命令,如“exec('mkdir test1')”、"exec('dir', $out)",也能够调用绝对路径下的bat文件创建文件夹,打印目录,但调用编写调用codeception测试命令的文件无任何响应。

问题原因:通过url地址(如:local.basic.com/index.php/codeception)请求时,excu()函数执行的目录时在web目录下,而在bat文件中的编写的调用codeception的路径是一个绝的路径,到之后命令运行不成功,错误的.bat文件编写如下

错误的bat文件
错误的bat文件编写内容

上图编写的内容导致函数在执行cmd命令时, 实际上cmd的执行情况是

cmd执行错误文件的结果

因为通过url地址请求时,cmd窗口实际上是在web文件夹中打开的,所以会报如上错误,而正确的bat文件应该像下图那样编写:

正确的bat文件编写
正确的bat文件编写内容

代码:

@echo off
cd ..\vendor\bin
codecept run api RecommendCest.php --html
cd/

PS:我的codeception名可能因为安装不正确的原因,只能在bin目录下运行相关命令,而官方文档显示是可以在项目根目录运行codeception相关命令的。后期有时间(主要看心情^_^),会更新一些codeception安装、运用的相关博客,欢迎小伙伴留言探讨。另外,如果有大牛知道更简便的方法去调用服务器上的codeception命令(不是直接去服务上执行cmd命令哈),跪求留下执行方法……

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值