首页 > 解决方案 > 使用 WP_UnitTestCase 编写功能测试

问题描述

TL;DR 任何人都知道在 Wordpress 上运行 selenium 测试时如何登录用户facebook/php-webdriver

我正在尝试使用 Selenium 和WP_UnitTestCase.

为了让我的应用程序加载,我需要一个登录用户,所以我创建了一个夹具:

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 );
}

不幸的是,webdriver 打开的浏览器似乎不共享正在运行的单元测试的状态/cookie,因此不会有用户登录,即使从单元测试本身,用户也已登录。至少那是我现在看到的。

示例中所示,webdriver 可以设置 cookie,我假设我必须以这种方式模拟登录用户。

有任何想法吗?

标签: wordpressunit-testingselenium

解决方案


推荐阅读