我有一组测试在本地运行良好,但是当它们在 CircleCI 构建内部运行时,拦截命令无法按预期工作。检查 Cypress 记录表明从未提出任何请求。
测试代码:
before( () => {
cy.intercept( 'GET', '**wp-json/wp/v2/pages?context=edit&status%5B0%5D=publish**' ).as( 'getPages' );
cy.intercept( 'GET', '**wp-json/wp/v2/posts?context=edit&status%5B0%5D=publish**' ).as( 'getPosts' );
openComplementaryArea( 'Site contents' );
// Make sure our data has loaded.
cy.wait( '@getPages' ).its( 'response.statusCode' ).should( 'eq', 200 );
cy.wait( '@getPosts' ).its( 'response.statusCode' ).should( 'eq', 200 );
} );
Run Code Online (Sandbox Code Playgroud)
我尝试增加拦截命令等待的时间,但请求仍然无法通过。
有什么想法为什么这可以在本地运行,但不能在 CircleCI 构建中运行?这几天我一直在胡思乱想,尝试了我能想到的一切。
简而言之,我正在检查/wp-json/需要漂亮永久链接的端点。在全新安装的 WordPress 中,默认的永久链接结构使 REST 端点可以通过?rest_route=/. 将它们更新为漂亮的永久链接使我的赛普拉斯测试正常工作。
因此,解决方案是在 CircleCI 构建中,在站点安装期间将 WordPress 选项设置permalink_structure 为。/%postname%/
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |