【发布时间】:2016-08-02 18:06:52
【问题描述】:
我正在尝试为 Jenkins(master 在 Mac/ElCapitan 上运行)设置一个 Windows 节点来运行 Codeception 验收测试。
jenkins jnlp 文件似乎运行正常,Jenkins 已在 Windows 节点上创建了它的目录。我要求它仅通过 Firefox 中的 ant 构建运行测试。这是在 master/Apple 机器上运行的成功测试。
我可以在任何目录的 Windows 节点上的命令提示符中键入“codecept”并获取默认帮助消息。
我可以通过 codecept run tests/acceptance/all/test 的命令提示符进入 Windows 节点机器上 Jenkins 创建的文件夹来运行测试。
当尝试从主机通过 Jenkins 执行此操作时,我收到以下错误:
C:\jenkins\workspace\nodeTest\browser\firefox\label\Windows10\build.xml:147: Execute failed: java.io.IOException: Cannot run program "C:\jenkins\workspace\nodeTest\browser\firefox\label\Windows10\vendor\bin\codecept" (in directory "C:\jenkins\workspace\nodeTest\browser\firefox\label\Windows10"): CreateProcess error=193, %1 is not a valid Win32 application
蚂蚁文件:
<property environment="env"/>
<property name="codecept" value="${basedir}/vendor/bin/codecept"/>
<target name="InvalidLogin" depends="CleanPics, InvalidLoginRun" />
<target name="CleanPics" description="clean out directories from previous run.">
<delete dir="${basedir}/tests/_output" />
<mkdir dir="${basedir}/tests/_output" />
<mkdir dir="${basedir}/tests/_output/debug" />
<target name="InvalidLoginRun" description="confirm invalid credentials don't allow login">
<exec executable="${codecept}" failonerror="true">
<arg value="run" />
<arg value="--debug" />
<arg value="tests/acceptance/all/00loginsInvalidCest.php" />
<arg value="--xml" />
<arg value="--env" />
<arg value="${browser}" />
</exec>
谷歌搜索让我得到了我应该使用 ShellExecute 而不是 CreateProcess 命令的答案,但我不知道如何配置 Ant 文件来执行此操作。有什么想法吗?
【问题讨论】:
-
在 Windows 上使用 vendor/bin/codecept.bat
-
成功了!请输入它作为答案,以便其他 Windows 新手可以更轻松地找到此答案。
标签: java windows jenkins ant codeception