Przejdź do głównej treści

Z v6 do v7

Ten poradnik jest dla osób, które nadal używają v6 WebdriverIO i chcą przejść na v7. Jak wspomniano w naszym wpisie na blogu o wydaniu, zmiany są głównie pod maską, a aktualizacja powinna być prostym procesem.

informacja

Jeśli używasz WebdriverIO v5 lub starszej wersji, najpierw zaktualizuj do v6. Zapoznaj się z naszym przewodnikiem migracji do v6.

Chociaż chcielibyśmy mieć w pełni zautomatyzowany proces, rzeczywistość wygląda inaczej. Każdy ma inną konfigurację. Każdy krok powinien być traktowany jako wskazówka, a nie jako szczegółowa instrukcja. Jeśli masz problemy z migracją, nie wahaj się skontaktować z nami.

Konfiguracja

Podobnie jak w przypadku innych migracji, możemy użyć codemod WebdriverIO. W tym poradniku używamy projektu boilerplate przesłanego przez członka społeczności i całkowicie migrujemy go z v6 do v7.

Aby zainstalować codemod, uruchom:

npm install jscodeshift @wdio/codemod

Commity:

Aktualizacja zależności WebdriverIO

Biorąc pod uwagę, że wszystkie wersje WebdriverIO są ze sobą ściśle powiązane, najlepiej zawsze aktualizować do konkretnego taga, np. latest. W tym celu kopiujemy wszystkie zależności związane z WebdriverIO z naszego package.json i ponownie je instalujemy za pomocą:

npm i --save-dev @wdio/allure-reporter@7 @wdio/cli@7 @wdio/cucumber-framework@7 @wdio/local-runner@7 @wdio/spec-reporter@7 @wdio/sync@7 wdio-chromedriver-service@7 wdio-timeline-reporter@7 webdriverio@7

Zazwyczaj zależności WebdriverIO są częścią zależności deweloperskich, ale w zależności od projektu może to się różnić. Po tej operacji twój package.json i package-lock.json powinny zostać zaktualizowane. Uwaga: to są zależności używane przez przykładowy projekt, twoje mogą się różnić.

Commity:

Transformacja pliku konfiguracyjnego

Dobrym pierwszym krokiem jest rozpoczęcie od pliku konfiguracyjnego. W WebdriverIO v7 nie wymagamy już ręcznego rejestrowania żadnych kompilatorów. W rzeczywistości muszą one zostać usunięte. Można to zrobić automatycznie za pomocą codemod:

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./wdio.conf.js
ostrożnie

Codemod nie obsługuje jeszcze projektów TypeScript. Zobacz @webdriverio/codemod#10. Pracujemy nad wprowadzeniem wsparcia dla niego wkrótce. Jeśli używasz TypeScript, zapraszamy do współpracy!

Commity:

Aktualizacja definicji kroków

Jeśli używasz Jasmine lub Mocha, to już koniec. Ostatnim krokiem jest aktualizacja importów Cucumber.js z cucumber na @cucumber/cucumber. Można to również zrobić automatycznie za pomocą codemod:

npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./src/e2e/*

To wszystko! Nie ma więcej potrzebnych zmian 🎉

Commity:

Podsumowanie

Mamy nadzieję, że ten poradnik pomoże ci nieco w procesie migracji do WebdriverIO v7. Społeczność nadal ulepsza codemod, testując go z różnymi zespołami w różnych organizacjach. Nie wahaj się zgłosić problemu, jeśli masz uwagi lub rozpocząć dyskusję, jeśli napotkasz trudności podczas procesu migracji.

Welcome! How can I help?

WebdriverIO AI Copilot