使用WP_UnitTestCase

时间:2019-01-30 14:16:56

标签: wordpress unit-testing selenium

TL; DR在使用facebook/php-webdriver通过Wordpress运行硒测试时,谁知道如何登录用户吗?

我正在尝试使用Selenium和WP_UnitTestCase测试基于Wordpress的应用程序。

要加载我的应用,我需要一个登录用户,因此我创建了一个固定装置:

public function setUp() {

    $user_id = 1;
    $user = get_user_by( 'id', $user_id );
    if( $user ) {
        wp_set_current_user( $user_id, $user->user_login );
        wp_set_auth_cookie( $user_id );
        do_action( 'wp_login', $user->user_login );
    }

    $host = 'http://localhost:4444/wd/hub';

    $desired_capabilities = DesiredCapabilities::firefox();
    $desired_capabilities->setCapability( 'acceptSslCerts', false );
    $this->webDriver = RemoteWebDriver::create( $host, $desired_capabilities );
}

不幸的是,由网络驱动程序打开的浏览器似乎没有共享正在运行的单元测试的状态/ cookie,因此即使从单元测试本身内部,用户登录。至少这就是我现在所看到的。

example中可以看到,网络驱动程序可以设置cookie,我认为我必须以这种方式模拟一个已登录的用户。

有什么想法吗?

0 个答案:

没有答案