协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
migrate【开发与工程】Migre do Cypress ou Selenium para o Playwright. Use quando o usuário mencionar "cypress", "selenium", "migrar testes", "converter testes", "migrar para playwright", "sair do cypress" ou "substituir selenium".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: "migrate" description: >- Migre do Cypress ou Selenium para o Playwright. Use quando o usuário mencionar "cypress", "selenium", "migrar testes", "converter testes", "migrar para playwright", "sair do cypress" ou "substituir selenium". agents:
Migração interativa do Cypress ou Selenium para o Playwright com conversão arquivo por arquivo.
$ARGUMENTS pode ser:
"from cypress" — migrar suite de testes Cypress"from selenium" — migrar testes Selenium/WebDriverUse o subagente Explore para escanear:
cypress/ ou cypress.config.ts → Cypressselenium, webdriver nas dependências do package.json → Selenium.py com imports de selenium → Selenium (Python)Contar arquivos e categorizar:
Avaliação de Migração:
- Total de arquivos de teste: X
- Comandos customizados Cypress: Y
- Fixtures Cypress: Z
- Esforço estimado: [pequeno|médio|grande]
| Tamanho | Arquivos | Abordagem |
|---|---|---|
| Pequeno (1-10) | Converter sequencialmente | Conversão direta |
| Médio (11-30) | Em lotes de 5 | Usar subagentes |
| Grande (31+) | Usar /batch | Conversão paralela com /batch |
Executar /pw:init primeiro se o Playwright não estiver configurado.
Para cada arquivo, aplicar o mapeamento apropriado:
Carregar cypress-mapping.md para referência completa.
Traduções principais:
cy.visit(url) → page.goto(url)
cy.get(selector) → page.locator(selector) ou page.getByRole(...)
cy.contains(text) → page.getByText(text)
cy.find(selector) → locator.locator(selector)
cy.click() → locator.click()
cy.type(text) → locator.fill(text)
cy.should('be.visible') → expect(locator).toBeVisible()
cy.should('have.text') → expect(locator).toHaveText(text)
cy.intercept() → page.route()
cy.wait('@alias') → page.waitForResponse()
cy.fixture() → import JSON ou arquivo de dados de teste
Comandos customizados Cypress → fixtures ou funções helper do Playwright
Plugins Cypress → config ou fixtures do Playwright
before/beforeEach → test.beforeAll() / test.beforeEach()
Carregar selenium-mapping.md para referência completa.
Traduções principais:
driver.get(url) → page.goto(url)
driver.findElement(By.id('x')) → page.locator('#x') ou page.getByTestId('x')
driver.findElement(By.css('.x')) → page.locator('.x') ou page.getByRole(...)
element.click() → locator.click()
element.sendKeys(text) → locator.fill(text)
element.getText() → locator.textContent()
WebDriverWait + ExpectedConditions → expect(locator).toBeVisible()
driver.switchTo().frame() → page.frameLocator()
Actions → locator.hover(), locator.dragTo()
Durante a conversão, atualizar seletores para as melhores práticas do Playwright:
#id → getByTestId() ou getByRole().class → getByRole() ou getByText()[data-testid] → getByTestId()test.extend()Após converter cada arquivo:
npx playwright test <arquivo-convertido> --reporter=list
Corrigir erros de compilação ou de execução antes de avançar para o próximo arquivo.
Após todos os arquivos serem convertidos:
package.jsoncypress.config.ts, etc.)Perguntar ao usuário antes de deletar qualquer coisa.