Как я могу динамически получать URL-адрес приложения предварительной версии, созданного на Vercel, когда запрос на извлечение делается в проекте Next.js, развернутом через GitHub? Я хочу использовать Cypress для тестирования этого развернутого приложения, но не знаю, как автоматически получить URL-адрес приложения предварительного просмотра для его посещения в тестах Cypress.
describe("template spec", () => {
it("passes", () => {
cy.visit("url");
cy.get(
'img[alt = "Next.js Logo"][fetchpriority = "high"][width = "180"][height = "37"][decoding = "async"][data-nimg = "1"][class = "relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert"]'
).should("exist");
});
});
Это сделал Глеб Бахмутов, см. Тестируйте предварительную версию Vercel Deploys.
Стоит прочитать до конца, но суть в том, что вы можете получить URL-адрес предварительного просмотра из события действия GitHub, установив для него переменную среды CYPRESS_BASE_URL
.
Ссылка Cypress — переопределяющая конфигурация
name: ci
# https://docs.github.com/en/actions/reference/events-that-trigger-workflows
on: [deployment_status]
jobs:
e2e:
# only runs this job on successful deploy
if: github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎
uses: actions/checkout@v1
- name: Run Cypress 🌲
uses: cypress-io/github-action@v2
env:
CYPRESS_BASE_URL: ${{ github.event.deployment_status.target_url }}
Решено это, добавив `with: Record: false config-file: cypress.config.ts # Обновление нового файла конфигурации` под шагами
Я смог воспользоваться ресурсами, которыми вы поделились, и сделал большой шаг. Однако я все еще сталкиваюсь с проблемой, когда тест выполняется на действиях GitHub. Я понимаю
Error: Could not find Cypress test run results
.