Laravel 5 想和docker alpine一起做黄昏测试吗
现在正在docker alpine内部测试laravel/Dash。 但是当我设置时,遇到了以下错误 Facebook\WebDriver\Exception\WebDriverException:引发卷曲错误 对于带有参数的http POST to/session: {desiredCapabilities:{browserName:phantomjs,平台:ANY} 无法连接到本地主机端口4444:连接被拒绝 源代码设置如下。 tests/testcase.phpLaravel 5 想和docker alpine一起做黄昏测试吗,laravel-5,Laravel 5,现在正在docker alpine内部测试laravel/Dash。 但是当我设置时,遇到了以下错误 Facebook\WebDriver\Exception\WebDriverException:引发卷曲错误 对于带有参数的http POST to/session: {desiredCapabilities:{browserName:phantomjs,平台:ANY} 无法连接到本地主机端口4444:连接被拒绝 源代码设置如下。 tests/testcase.php <?php nam
<?php
namespace Tests;
use Laravel\Dusk\TestCase as BaseTestCase;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
abstract class DuskTestCase extends BaseTestCase
{
use CreatesApplication;
/**
* Prepare for Dusk test execution.
*
* @beforeClass
* @return void
*/
public static function prepare()
{
//static::startChromeDriver();
}
/**
* Create the RemoteWebDriver instance.
*
* @return \Facebook\WebDriver\Remote\RemoteWebDriver
*/
protected function driver()
{
return RemoteWebDriver::create(
'http://localhost:4444/wd/hub', DesiredCapabilities::phantomjs()
);
}
}
非常感谢您的阅读。这真的是多种因素的结合。您需要覆盖Dusk附带的chromedriver linux二进制文件,因为它与alpine映像不兼容。 在Dockerfile中应该是这样的:
RUN apk update && apk upgrade \
&& echo @edge http://nl.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
&& echo @edge http://nl.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
&& apk add --no-cache \
chromium@edge \
chromium-chromedriver@edge \
xvfb \
nss@edge \
&& rm -rf /var/lib/apt/lists/* \
/var/cache/apk/* \
/usr/share/man \
/tmp/*
RUN rm /var/www/html/vendor/laravel/dusk/bin/chromedriver-linux \
&& ln -s /usr/bin/chromedriver /var/www/html/vendor/laravel/dusk/bin/chromedriver-linux \
&& ln -s /usr/bin/chromium-browser /usr/bin/chrome
在start.sh中,您使用:
Xvfb :99 &
RUN export DISPLAY=:99
这将启动一个无头显示器,这样chrome就可以在您的容器内无头运行。如何在4444端口上启动web驱动程序。这是通过docker命令还是docker compose实现的。请分享详情。